Как читать андроид сим контакты и телефон контакты отдельно
Я хочу читать все контакты сим и телефонные контакты отдельно в Android. Я искал это и нашел много людей, имеющих проблему с этим, и я не мог найти никакого решения еще. Мне здесь нравится какой-то ответ, но он не работает для меня. Когда я проверяю это, это дает мне контакты Google:
RawContacts.ACCOUNT_TYPE + " = 'com.google' "
Но когда я проверяю это, это не дает мне контакты сима:
RawContacts.ACCOUNT_TYPE + " = 'com.android.contacts.sim' "
Затем я обнаружил, что RawContacts - это контакты, созданные с помощью адаптера синхронизации. Это может быть проблемой. Так может кто-нибудь сказать мне, как получить
- Все симконтакты
- Все телефонные контакты
Благодарю.
2 ответа
для телефонных контактов
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());
}
для сим-контактов
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();
}
Я нашел много телефонов использовать "com.android.contacts.sim"
в RawContacts.ACCOUNT_TYPE
для сим-контактов. Но я также обнаружил, что HTC использует "com.anddroid.contacts.sim" (сорфографической ошибкой для Android). Это странно.