Android:如何创建联系人并以编程方式将其存储在SIM中

时间:2018-04-02 10:53:10

标签: android android-contacts

此代码已成功执行,但联系人未保存到SIM卡。

 private fun addContactToSim(number: String, name: String) {
        try {
            val simUri = Uri.parse("content://icc/adn")
            val cv = ContentValues()
            cv.put("tag", name)
            cv.put("number", number)
            context.getContentResolver().insert(simUri, cv)
            context.getContentResolver().notifyChange(simUri, null)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

在重新启动后的某些设备中显示已添加的联系人但在重新启动后某些设备中未显示联系人。请建议我一个解决方案。

1 个答案:

答案 0 :(得分:0)

我肯定会在这个

上做了很多工作

一步一步尝试 如果你想添加更多的属性来联系评论我会给你

      ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        int rawContactInsertIndex = ops.size();

 ops.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());

         ops.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,
                                        strmob)
                                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
                                        ContactsContract.CommonDataKinds.Phone.TYPE_OTHER)
                                //ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                                .build());

   ContentProviderResult[] res = activity.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);