s***@163.com
s***@163.com
  • 发布:2017-11-01 11:39
  • 更新:2018-09-22 19:42
  • 阅读:5780

oppo手机通讯录权限禁用闪退的解决方案

分类:HTML5+

在oppo手机中 如果权限被禁用addressbook.find()这行会被执行,发生闪退,plus.contacts.getAddressBook方法无论权限同意与否都会执行成功的回调函数,所以解决闪退问题就需要判断权限是否被禁用,在H5+ 中plus.navigator.checkPermission()方法暂时不支持Android,废话不多说,一下方法可以询问到通讯录权限,进而解决oppo手机的闪退问题

var main = plus.android.runtimeMainActivity();
var a = plus.android.importClass('android.content.ContentProviderOperation');
var b = plus.android.importClass('android.content.ContentResolver');
var c = plus.android.importClass('android.database.Cursor');
var cc = plus.android.importClass('android.net.Uri');
var d = plus.android.importClass('android.test.AndroidTestCase');
var e = plus.android.importClass('android.util.Log');

var uri = cc.parse("content://com.android.contacts/contacts");
var arr = ["_id"];
var resolver = main.getContext().getContentResolver();
var cursor = resolver.query(uri, arr, null, null, null);
if (cursor.moveToNext() == false) {
alert("请打开权限")
}else{
alert("权限已打开")
}

1 关注 分享
移动达人

要回复文章请先登录注册

7***@qq.com

7***@qq.com

var main = plus.android.runtimeMainActivity();//获取activity
var resolver = main.getContext().getContentResolver();
plus.android.importClass(resolver);
var andriodNetUri = plus.android.importClass('android.net.Uri');
var cursor;
try
{
var cursor = resolver.query(andriodNetUri.parse("content://com.android.contacts/contacts"), ["_id"], null, null, null);
plus.android.importClass(cursor);
if (cursor.moveToNext() == false) {
alert("请打开权限");
}
else{
alert("权限已打开");
}
}
catch(ex)
{
alert("请打开权限")
}
2018-09-22 19:42
6***@qq.com

6***@qq.com

还有什么解决方案吗????
2018-04-16 14:21
6***@qq.com

6***@qq.com

我试一下,好像不行啊?
2018-04-16 14:21
移动达人

移动达人

不错,感谢分享。
2017-11-01 12:43