2

我想保存contactsim卡,但我无法做到这一点。我用这个代码来保存联系人

ContentValues values = new ContentValues();
        values.put(People.NUMBER, phone);
        values.put(People.TYPE, Phone.TYPE_CUSTOM);
        values.put(People.LABEL, name);
        values.put(People.NAME, name);

        Uri dataUri = getContentResolver().insert(People.CONTENT_URI, values);
        Uri updateUri = Uri.withAppendedPath(dataUri, People.Phones.CONTENT_DIRECTORY);
        values.clear();
        values.put(People.Phones.TYPE, People.TYPE_CUSTOM);
        values.put(People.NUMBER, phone);
        updateUri = getContentResolver().insert(updateUri, values);

但它没有保存在 sim 卡中。请帮我!

4

3 回答 3

1

您应该获取 SIM 卡联系人的 dataUri,而不是存储在设备中的联系人。

Uri simUri = Uri.parse("content://icc/adn");
Cursor cursorSim = this.getContentResolver().query(simUri, null, null,null, null);

此外,您的应用程序应该获得读写联系人的权限。添加

<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>

到您的 Android.xml 文件。

看一下

我们如何以编程方式在 android 的 sim 卡中添加短信

如何以编程方式在 Android 中获取所有 Sim 联系人?

于 2013-08-09T11:45:26.753 回答
1

cv.put("name", "zzzz"); // Wrong“名称”不是正确的键。改用“标签”cv.put("tag", "zzzz");

于 2014-02-28T03:59:21.063 回答
0

您没有提供任何 ID 来添加联系人。

values.put(Data.RAW_CONTACT_ID, idyouwanttoadd);

有关更多信息,请查看以下链接: 如何在 android 中添加新联系人

于 2013-08-09T11:50:27.587 回答