我开始为api 13构建我的应用程序,因为我知道它可以为大多数用户提供足够的效率。 但我把它改成了api 10。 然后以下代码停止工作`
String empName=data.getStringExtra("name");
String hourPay=data.getStringExtra("hourPay");
String key="";
String id="";
Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, empName);
Cursor idCursor = getContentResolver().query(lookupUri, null, null, null, null);
idCursor.moveToFirst();
id = idCursor.getString(idCursor.getColumnIndex(ContactsContract.Contacts._ID));
key = idCursor.getString(idCursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));`
问题是它只适用于用英文写的联系人姓名或者只有姓名(不是姓氏)的联系人姓名
例如: 它适用于以下联系人: 快递服务, 乔治, Maria Mpakou, Σοφια, 没有区别语言
但是当用我的语言(希腊语)写一个联系人并且有空格(例如ΑιμιλιοςΔημιος)时,它会返回索引超出范围的下方光标。
当我第一次尝试在api 13工作时就像一个魅力。 顺便说一句,我的Android.Manifest有utf-8编码,如果这与它有关 请任何推荐都会有所帮助。 感谢
答案 0 :(得分:0)
经过大量搜索后,我终于用不同的方式做了...就像向所有联系人询问Sql查询一样
以下是代码:
String empName=data.getStringExtra("name");
Cursor idCursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,null,Contacts.DISPLAY_NAME+" = '"+empName+"'", null, null);
这就像一个魅力!