gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 00:17:54 25 4
gpt4 key购买 nike

我做了以下代码,用于从 SIM 卡中删除选定的联系人。但它不会删除,也不会抛出任何错误。

protected void DeleteContacts(ArrayList<String> ids){

int flg = 0;

String[] strids = new String[ids.size()];
strids = ids.toArray(strids);

for (int i = 0; i < strids.length; i++) {

Cursor sims = getActivity().getContentResolver().query(
Uri.parse("content://icc/adn"), null,
"_id=?", new String[]{strids[i]}, null);

sims.moveToFirst();
if (sims.getCount()>0) {
String phoneNumber = sims.getString(sims.getColumnIndex("number"));
boolean val = deleteContact(phoneNumber);
if (!val)
flg=1;
}

if (flg == 0)
Toast.makeText(getActivity(), "Contact Deleted", Toast.LENGTH_SHORT).show();
sims.close();
}
}

public boolean deleteContact(String phone) {
Cursor cur = getActivity().getContentResolver().query(Uri.parse("content://icc/adn"), null, "number=?", new String[] { phone }, null);
try {
if (cur.moveToFirst()) {
do {
String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
getActivity().getContentResolver().delete(uri, null, null);
return true;
} while (cur.moveToNext());
}
} catch (Exception e) {
System.out.println(e.getStackTrace());
}
return false;
}

最佳答案

您正在从 sqlite 数据库而不是 SIM 卡中删除联系人。要从 SIM 卡中删除联系人,您只需删除 Uri.parse("content://icc/adn") uri。但要删除,您需要同时提供姓名和号码。名称列必须指定为标签。在此处检查删除方法 https://android.googlesource.com/platform/frameworks/opt/telephony/+/9ebea45a36838f0547a9c30f7cd9c60b03aab3b4/src/java/com/android/internal/telephony/IccProvider.java

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

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