使用以下代码联系人被添加到 SIM 中,但在重新启动时它会消失。另一个观察结果是 - 如果我们编辑此 SIM 联系人(以编程方式添加),则在重新启动之前,android 的联系人应用程序会崩溃,但联系人会被编辑,并且在重新启动时它仍然不会消失。
在三星以外的设备上,它根本不会在 android 的默认联系人应用程序中显示联系人。但我拉出了联系人数据库并检查了......它包含我以编程方式插入的联系人。我在 LG Optimus 上检查了这个。
任何人都可以帮助我需要考虑的所有其他列或现有列的任何问题。提前致谢。
在三星设备、欧罗巴、S3 上检查了这一点。
private void addSIMContacts() {
// TODO Auto-generated method stub
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation
.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE,
new String("vnd.sec.contact.sim"))
.withValue(RawContacts.ACCOUNT_NAME,
new String("vnd.sec.contact.sim"))
.withValue(RawContacts.SOURCE_ID, new String("1")).build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, "9X-XXXXXXXXX").build());
ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, "om").build());
try {
ContentProviderResult[] res = getContentResolver().applyBatch(
ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}