如何以编程方式在android 10中恢复已删除的联系人
Posted
技术标签:
【中文标题】如何以编程方式在android 10中恢复已删除的联系人【英文标题】:how to recover Deleted contacts in android 10 programmatically 【发布时间】:2021-01-22 01:54:07 【问题描述】:我想创建一个可以恢复已删除联系人的应用。它适用于所有其他设备,但在 android 10 中,应用程序无法获取已删除的联系人。有没有办法从android 10中获取已删除的联系人。
这是我的代码,可以恢复已删除的联系人
public static final String WHERE_MODIFIED1 = "( " + ContactsContract.RawContacts.DELETED + "=1)";
ContentResolver cr = getContentResolver();
Cursor cur = cr.query((ContactsContract.RawContacts.CONTENT_URI),
null, WHERE_MODIFIED1, null, (DeletedContactRecovery.hasHoneycomb() ? "sort_key" : "display_name") + " COLLATE LOCALIZED ASC");
assert cur != null;
if (cur.getCount() > 0)
while (cur.moveToNext())
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String phone = null;
//if (!(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0))
System.out.println("name : " + name + ", ID : " + id);
// get the phone number
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]id, null);
assert pCur != null;
while (pCur.moveToNext())
phone = pCur.getString(
pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
System.out.println("phone" + phone);
pCur.close();
//
if (id != null)
contactList.add(new Contact(name, phone, id));
Log.e("hvy", "onCreaterrView Phone Number: name = " + name
+ " No = " + phone);
cur.close();
【问题讨论】:
【参考方案1】:对于要阻止或恢复联系人的 android 应用,有必要将其设为默认 Dailer 或 SMS 应用。当我厌倦阅读 android 10 中的阻止联系人时,我曾经遇到过同样的问题,即使我的应用程序在 android 10 下运行良好。我不知道这里的解决方案到底是什么,但尝试将应用程序设为默认值,然后尝试读取联系人。
【讨论】:
【参考方案2】:我认为您无法执行此操作,因为您无权访问联系人应用程序特殊空间。 每个应用程序都有一个特殊的空间,其他应用程序无法访问它。
可能是root user
你可以恢复联系。
转到Developer Options
并启用Unlock OME
然后你需要一个像kingo root 这样的控制root 请求的应用程序
【讨论】:
但它在 android 8 的较低 api 级别工作,无需 root 也能正常工作 所以可以更改ContactsContract.RawContacts.DELETED
见文档【参考方案3】:
您可以使用此应用恢复已删除的联系人 https://play.google.com/store/apps/details?id=com.my.recovermycontacts
【讨论】:
我是一名开发人员,我想构建我的应用程序。我知道 Play 商店中提供了不同的应用程序。感谢您的贡献以上是关于如何以编程方式在android 10中恢复已删除的联系人的主要内容,如果未能解决你的问题,请参考以下文章
如何从 android 手机中获取已删除的联系人以及如何恢复它
如何以编程方式从 Android 中删除 SQLite 数据库
如何以编程方式连接到已在 Android 手机中设置的 ***