Java Android,以编程方式在SIM卡上创建联系人
我正在尝试在SIM(Nexus 5棉花糖)上创建联系人Java Android,以编程方式在SIM卡上创建联系人,java,android,android-5.0-lollipop,android-6.0-marshmallow,Java,Android,Android 5.0 Lollipop,Android 6.0 Marshmallow,我正在尝试在SIM(Nexus 5棉花糖)上创建联系人 String name=(String)nameEditText.getText().toString(); 字符串phoneNumber=(字符串)phoneNumberEditText.getText().toString(); 字符串结果=null; ArrayList ops=新建ArrayList(); ops.add(ContentProviderOperation.newInsert( Contacts contract.ra
String name=(String)nameEditText.getText().toString();
字符串phoneNumber=(字符串)phoneNumberEditText.getText().toString();
字符串结果=null;
ArrayList ops=新建ArrayList();
ops.add(ContentProviderOperation.newInsert(
Contacts contract.raw contacts.CONTENT\u URI)
.withValue(contacts contract.RawContacts.ACCOUNT_TYPE,“com.anddroid.contacts.sim”)
.withValue(contacts contract.raw contacts.ACCOUNT_NAME,“SIM”)
.build());
ops.add(ContentProviderOperation.newInsert(
contacts contract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
ContactsContract.CommonDataTypes.StructuredName.CONTENT\u ITEM\u TYPE)
.有价值(
Contacts contract.CommonDataTypes.StructuredName.DISPLAY\u NAME,
name.build());
添加(ContentProviderOperation)。
newInsert(ContactsContract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
Contacts contract.CommonDataTypes.Phone.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.commonDataTypes.Phone.NUMBER,phoneNumber)
.带值(contacts contract.commondatatypes.Phone.TYPE、,
Contacts contract.CommonDataTypes.Phone.TYPE\手机)
.build());
//要求联系人提供商创建新联系人
试一试{
getContentResolver().applyBatch(“com.android.contacts”,ops);
}捕获(例外e){
e、 printStackTrace();
System.out.println(例如toString());
}
但它会在手机内存中创建一个联系人
作为applyBatch的第一个论点,我也尝试了
“com.android.contacts”
,“com.android.contacts.sim”
,”content://icc/adn“
。它也不能正常工作。请尝试以下代码
Uri simUri = Uri.parse("content://icc/adn");
ContentValues cv = new ContentValues();
cv.put("tag", "Me");
cv.put("number", "yourphonenumber");
getContentResolver().insert(simUri, cv);
确保您已获得应用程序所需的权限。我遇到了相同的问题,一直在寻找答案。
我要做的是将
contacts contract.raw contacts.ACCOUNT\u TYPE
值更改为com.android.sim
,如下所示:
withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.android.sim")
而且效果很好。可以访问这里吗?您的包裹名是什么?添加pachkage名称,而不是com.anddroid.contacts.sim
withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.android.sim")