gpt4 book ai didi

android - 如何删除android中的sim卡联系人

转载 作者:行者123 更新时间:2023-11-30 02:27:13 27 4
gpt4 key购买 nike

下面是我从手机中删除联系人的代码

Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
Uri.encode(phone));
Cursor cur = mContext.getContentResolver().query(contactUri, null,
null, null, null);
boolean flag = false;
try {
if (cur.moveToFirst()) {
do {
if (cur.getString(
cur.getColumnIndex(PhoneLookup.DISPLAY_NAME))
.equalsIgnoreCase(name)) {
String lookupKey = cur
.getString(cur
.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_LOOKUP_URI,
lookupKey);
mContext.getContentResolver().delete(uri, null, null);
flag=true;
break;
}

} while (cur.moveToNext());
}

} catch (Exception e) {
flag=false;
System.out.println(e.getStackTrace());
}

从手机中删除联系人工作正常,但 sim 联系人删除临时意味着当我的手机重新启动时,我的联系人恢复了我删除的内容。帮助找到解决这个问题的方法。谢谢...

最佳答案

您要使用的 URI 是这个:content://icc/adn/

此外,您必须使用姓名号码才能删除联系人。

尝试这样的事情(对我有用):

Uri simUri = Uri.parse("content://icc/adn/");
ContentResolver mContentResolver = this.getContentResolver();
Cursor c = mContentResolver.query(simUri, null, null, null, null);
if (c.moveToFirst())
{
do
{
if (/* your condition here */)
{
mContentResolver.delete(
simUri,
"tag='" + c.getString(c.getColumnIndex("name")) +
"' AND " +
"number='" + c.getString(c.getColumnIndex("number")) + "'"
, null);
break;
}
}
while (c.moveToNext());
}

当然,不要忘记这些权限:

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

关于android - 如何删除android中的sim卡联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781285/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com