我想在Android中分别阅读所有SIM卡联系人和手机通讯录.我搜索了这个,发现很多人对此有问题,我找不到任何解决方案.我喜欢这里的答案,但它对我不起作用.当我测试它时,它给我谷歌联系人:
RawContacts.ACCOUNT_TYPE + " = 'com.google' "
Run Code Online (Sandbox Code Playgroud)
但是,当我测试它时,它不会给我sim联系人:
RawContacts.ACCOUNT_TYPE + " = 'com.android.contacts.sim' "
Run Code Online (Sandbox Code Playgroud)
然后我发现RawContacts是由同步适配器在这里创建的联系人.这可能是问题所在.所以任何人都可以告诉我获得的方式
谢谢.
bin*_*dal 13
电话联系人
try
{
String[] PROJECTION=new String[] {Contacts._ID,
Contacts.DISPLAY_NAME,
Phone.NUMBER
};
Cursor c=managedQuery(Phone.CONTENT_URI,
PROJECTION, null, null, null);
if (c.moveToFirst()) {
String ClsPhonename = null;
String ClsphoneNo = null;
do
{
ClsPhonename = c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME));
ClsphoneNo = c.getString(c.getColumnIndex(Phone.NUMBER));
ClsphoneNo.replaceAll("\\D", "");
ClsPhonename=ClsPhonename.replaceAll("&", "");
ClsPhonename.replace("|","");
String ClsPhoneName=ClsPhonename.replace("|","");
}
} while(c.moveToNext());
}
Run Code Online (Sandbox Code Playgroud)
用于SIM卡联系人
String ClsSimPhonename = null; String ClsSimphoneNo = null;
Uri simUri = Uri.parse("content://icc/adn");
Cursor cursorSim = this.getContentResolver().query(simUri,null,null,null,null);
while (cursorSim.moveToNext())
{
ClsSimPhonename =cursorSim.getString(cursorSim.getColumnIndex("name"));
ClsSimphoneNo = cursorSim.getString(cursorSim.getColumnIndex("number"));
ClsSimphoneNo.replaceAll("\\D","");
ClsSimphoneNo.replaceAll("&", "");
ClsSimPhonename=ClsSimPhonename.replace("|","");
System.out.println("SimContacts"+ClsSimPhonename);
System.out.println("SimContactsNo"+ClsSimphoneNo);
dts.createDatabse("MyCellFamily",getApplicationContext());
}
}
catch(Exception e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10689 次 |
| 最近记录: |