AutoJs6
AutoJs6 copied to clipboard
[bug]无法申请联系人权限,其他人的版本就可以
无法获取联系人权限,也不会主动申请权限,试了2台手机+1个mumu模拟器都一样情况,请问怎么解决?
let Phone = android.provider.ContactsContract.CommonDataKinds.Phone;
let ContentValues = android.content.ContentValues;
let ContentUris = android.content.ContentUris;
let ContactsContract = android.provider.ContactsContract;
// alert("警告", "将会请求联系人权限。为了保证自己的通讯录不被其他脚本泄漏或破坏,请运行本脚本后手动禁止读写联系人权限。")
// 请求联系人权限
runtime.requestPermissions(["read_contacts", "write_contacts"]);
// 首次运行会出错,因为读写联系人权限还没授予,很正常
log(getAllContacts());
// 获取所有联系人
function getAllContacts() {
let contacts = [];
let cursor = context.contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
let contact = {};
contact.name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
let contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
contact.contactId = contactId;
//contact.rawContactId = cursor.getLong(cursor.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID));
let phones = context.contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
if (phones.moveToFirst()) {
contact.number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close()
contacts.push(contact);
}
cursor.close()
return contacts;
}