我正在尝试将单个联系人写入SIM卡。Android - 创建新的SIM卡联系人
我扫描这些问题至今: this,this,this,and this.
我获得的this nice library源,不过,我没有看到应用程序导出的联系人。更糟糕的是,我已经填充了一张我的SIM卡,没有任何可能清除它,所以我必须得到另一张。
没有帮助。
这是我的代码:
Uri simUri = Uri.parse("content://icc/adn");
OR RawContacts.CONTENT_URI;
SIM_ACCOUNT_NAME = "vnd.sec.contact.sim";
SIM_ACCOUNT_TYPE = "vnd.sec.contact.sim";
public static final void exportToSim(Context context,
List<Contact> listContacts) {
ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
for (Contact contact : listContacts) {
if (contact.getPhones() == null)
continue;
if (contact.getPhones().isEmpty())
continue;
/* Create empty contact */
int backReference = operations.size();
operations.add(ContentProviderOperation.newInsert(simUri)
.withValue(RawContacts.ACCOUNT_TYPE, SIM_ACCOUNT_TYPE)
.withValue(RawContacts.ACCOUNT_NAME, SIM_ACCOUNT_NAME)
.build());
/* Add name Data */
operations
.add(ContentProviderOperation
.newInsert(DATA_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
backReference)
.withValue(Data.MIMETYPE,
StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME,
contact.displayName).build());
/* Add phone data */
for (Phone phone : contact.getPhones()) {
operations.add(ContentProviderOperation
.newInsert(DATA_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
backReference)
.withValue(Data.MIMETYPE,
CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(CommonDataKinds.Phone.NUMBER, phone.number)
.withValue(CommonDataKinds.Phone.TYPE,
CommonDataKinds.Phone.TYPE_MOBILE).build());
}
}
try {
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY,
operations);
} catch (RemoteException e) {
Log.e(e.getClass().getSimpleName(), e.getMessage());
} catch (OperationApplicationException e) {
Log.e(e.getClass().getSimpleName(), e.getMessage());
}
}
在simUri等于Uri.parse的情况下( “内容:// ICC/ADN”)应用程序崩溃与UnsupportedOperationException异常,
在的情况下simUri等于RawContacts.CONTENT_URI联系人被写入RawCts表中,并且它被标记为来自sim的联系人,但在重新加载后,我没有在任何地方看到联系人。看起来,它并没有直接写入SIM卡。
SIM_ACCOUNT_TYPE/NAME的值反映了与系统应用程序导出的cts中相同的帐户类型/名称对。
应用程序清单包含这两种权限:读取和写入_CONTACTS
请帮助。我应该用什么代码将联系人正确写入SIM卡?
谢谢任何回应的人。
你好创建新的SIM卡联系人。你解决了你的问题吗? –
@UnknownJoe检查我的回答 – moDev