2012-07-03 31 views
0

我开始构建我的api 13应用程序,因为我认为它对于大多数用户来说可能足够高效。 但是我改成了API 10 然后将以下代码停止工作`无法根据联系人的姓名获得uri

   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));` 

的问题是,它还是用英文写的联系人姓名是刚才的域名(不姓)中的那些

只能

例如: 它适用于以下联系人: 快速服务, 乔治, 玛丽亚Mpakou, Σοφια, 由于语言之间没有区别

但是当用我的语言(希腊语)编写联系人并且有空间时(例如ΑιμιλιοςΔημιος),它会返回索引超出范围的下方光标。

当我第一次尝试在api 13工作就像一个魅力。 顺便说一句,我的Android.Manifest有utf-8编码,如果这有什么关系 请任何recomendation将bw helpfull。 感谢

回答

0

很多搜​​索后我终于用不同的方式做到了......就像问一个SQL查询到所有联系人

下面是代码:

String empName=data.getStringExtra("name"); 
Cursor idCursor = getContentResolver().query(     
ContactsContract.Contacts.CONTENT_URI,null,Contacts.DISPLAY_NAME+" = '"+empName+"'", null, null); 

这工作就像一个魅力!

相关问题