adb 命令不起作用,怎么改都没用,还有其他方法获取手机通讯录吗?
shell content query --uri content://contacts/people/

adb 命令不起作用,怎么改都没用,还有其他方法获取手机通讯录吗?
shell content query --uri content://contacts/people/

下午好🌅🌅🌅
本答案参考通义千问
当你在使用 adb 命令时遇到问题,例如 adb shell content query --uri content://contacts/people/ 不起作用,可能是由于多种原因导致的。以下是一些可能的原因和解决方案:
adb devices
adb root
content://contacts/people/ 是一个旧版的 URI,在 Android 10 及更高版本中已被弃用。ContactsContract 查询联系人信息。如果你的目标是查询联系人信息,可以使用以下方法:
adb shell content query --uri content://com.android.contacts/contacts
adb shell content query --uri content://com.android.contacts/contacts?limit=10
注意: Android 10 及以上版本默认限制了对 contacts 的直接访问,除非你有
READ_CONTACTS权限。
如果你正在开发应用,可以通过以下代码获取联系人信息:
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(
ContactsContract.Contacts.CONTENT_URI,
null,
null,
null,
null
);
if (cursor != null) {
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.d("Contact", "Name: " + name + ", ID: " + id);
}
cursor.close();
}
| 错误提示 | 解决方案 |
|----------|----------|
| adb not found | 安装 ADB 工具链(如 Android Studio 或 SDK) |
| device unauthorized | 在设备上确认 USB 调试授权 |
| permission denied | 尝试 adb root 或使用具有权限的应用 |
| invalid uri | 检查 URI 是否正确(如 content://contacts/people/ 已过时) |
content://contacts/people/ 是过时的 URI,建议使用 content://com.android.contacts/contacts 或通过代码方式查询联系人。如果你能提供更多上下文信息(如设备型号、Android 版本、具体报错信息等),我可以为你提供更精准的解决方案。