java 添加联系人_将联系人添加到SIM卡

在尝试使用Java将联系人添加到SIM卡时,发现添加的联系人只有在设备重启后才能显示。代码中使用了Uri.parse("content://icc/adn")进行插入操作,可能存在的问题是联系人同步问题。尝试通过ContentProviderOperation更新 RawContacts 的ACCOUNT_TYPE和ACCOUNT_NAME为"com.android.huawei.sim"和"sim1",但结果依然不正确,RawContacts的ACCOUNT_TYPE被替换为"com.android.huawei.phone"。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试将联系人添加到SIM卡,它们似乎被添加到SIM卡中,但只有在重启设备后才能看到它们(甚至是原生人民应用程序) .

这是我正在使用的代码:

final Uri uri = Uri.parse("content://icc/adn");

ContentValues mContentValue = new ContentValues();

mContentValue.put("tag", contactName);

mContentValue.put("number", contactNumber);

getContentResolver().insert(uri, mContentValue);

在创建联系人后同步联系人db是一个问题吗?如果是这样,有没有办法,可能是,强制Android将联系人的数据库与SIM卡同步?

EDIT

好的,让我再解释一下我的问题 . 这是男人,有同样的问题,但没有任何答案(when adding contacts to sim card, they are only displayed after rebooting the device),所以我需要再问一次 .

ACCOUNT_TYPE: com.android.contacts.sim 和 ACCOUNT_NAME: SIM 对我的手机有误 . 我从 ContactsContract.Settings.CONTENT_URI 开始:com.android.huawei.phone - 电话和com.android.huawei.sim - sim1 . 这是我的代码:

ArrayList op = new ArrayList<>();

Uri simUri = Uri.parse("content://icc/adn");

ContentValues values = new ContentValues();

values.put("tag", "NAME");

values.put("number", "77777777777");

try {

Uri uri = context.getContentResolver().insert(simUri, values);

int efid = 0,index = 0;

Pattern pattern = Pattern.compile("^content://icc/adn/(\\d+)/(\\d+)$*");

Matcher matcher = pattern.matcher(uri.toString());

if(matcher.matches()) {

index = Integer.parseInt(matcher.group(1));

efid = Integer.parseInt(matcher.group(2));

}

ArrayAdapterSpinner.Item item = adapter.getItem(spinner.getSelectedItemPosition());

op.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)

.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.android.huawei.sim")

.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "sim1")

.withValue(ContactsContract.RawContacts.SYNC1,efid)

.withValue(ContactsContract.RawContacts.SYNC2,index)

.build());

op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)

.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)

.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "NAME")

.build());

op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)

.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)

.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "77777777777")

.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)

.build());

try {

ContentProviderResult[] cprs = context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);

} catch (Exception e) {

Log.e("ERROR", e.getMessage());

}

} catch(Exception e) {

Log.e("ERROR2", e.toString());

}

但结果是:

1.创建icc / adn中的联系人

2.创建RawContacts中的联系人,但用com.android.huawei.phone替换 ACCOUNT_TYPE 和 ACCOUNT_NAME - 电话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值