如何分别读取android sim联系人和手机联系人
我想在Android中分别读取所有sim联系人和手机联系人。我搜索了这个,发现很多人有这个问题,我还找不到任何解决方案。我喜欢一些回答here,但它不适合我。 当我测试这一点,给我的谷歌联系人:如何分别读取android sim联系人和手机联系人
RawContacts.ACCOUNT_TYPE + " = 'com.google' "
但是当我测试这一点,不给我SIM卡联系人:
RawContacts.ACCOUNT_TYPE + " = 'com.android.contacts.sim' "
后来我发现RawContacts是通过同步适配器中创建联系人here。这可能是问题所在。因此,谁能告诉我,让
- 所有simcontacts
- 所有手机联系人
感谢的方式。
为电话联系人
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());
}
为SIM卡联系人
字符串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();
}
感谢您的replay.in第一个例子,我得到所有联系人(不仅联系人保存到手机,但也模拟和谷歌同步) – sampathpremarathna 2012-01-18 11:51:25
第二个它的 – sampathpremarathna 2012-01-18 12:13:02
有没有办法获得手机通讯录,除了保存的联系人与谷歌(或其他同步帐户)进行SIM卡或同步。 – sampathpremarathna 2012-01-18 14:52:23
我发现很多电话在RawContacts.ACCOUNT_TYPE
使用"com.android.contacts.sim"
于SIM卡联系人。但我也发现HTC使用“com.anddroid.contacts.sim”(拼写错误 for android)。这很奇怪。
,还有一些使用“vnd.sec.contact.sim”。 – sampathpremarathna 2012-12-24 03:11:19
如何找到所有可能的SIM和本地帐户,以便将新联系人保存到哪里,而不管它在哪个设备上运行? – 2016-05-15 11:35:16
也许在ACCOUNT_TYPE中存在拼写错误?试试'com.android.contacts.sim'。 – Ash 2012-01-18 10:56:10
ohh对不起,我输入了一个错误,但事实并非如此:)我会编辑这个 – sampathpremarathna 2012-01-18 10:59:24
你有没有找到解决方案? – 2012-07-09 14:50:51