Open start141 opened 9 years ago
oppo checkPermission(Manifest.permission.READ_CONTACTS)始终返回true,即使禁用了该权限 我测试的机型:OPPO R9s(android 6.0),有什么方法可以辨别权限是否被禁用吗?同样遇到了这个问题,有人能给解答一下吗
public boolean hasPermission(@NonNull Context context, @NonNull List
int result;
do {
if (!var3.hasNext()) {
return true;
}
String permission = (String)var3.next();
result = context.checkPermission(permission, Process.myPid(), Process.myUid());
if (result == -1) {
return false;
}
String op = AppOpsManager.permissionToOp(permission);
if (TextUtils.isEmpty(op)) {
return true;
}
AppOpsManager appOpsManager = (AppOpsManager)context.getSystemService(AppOpsManager.class);
result = appOpsManager.noteProxyOp(op, context.getPackageName());
} while(result == 0);
return false;
}
}
摘自CPermission 可以尝试下 @skylixinxin
@luffykou 我也遇到这种问题,vivo 不会报出Exception,这种方法不适用,你是怎么解决的呢 ??
用了这篇博客的方法,测试有效。 https://blog.csdn.net/lvwenbo0107/article/details/81035831
我就问下,vivo 怎么判断有没有悬浮窗权限,这个适配真的是非常操蛋。。
众所周知,MIUI、Flyme等Android定制系统在程序请求打开相机、录音等操作时,系统会先弹出对话框提示用户是否允许程序执行这些操作,如果用户选择允许,则接下来的操作一切正常,如果用户选择拒绝之后,程序后面的工作将无法正常允许,甚至崩溃。
提问:在这种情况下,如何判断用户是拒绝还是允许了操作? 目前我知道用try catch可以粗暴的判断,但我不确定所有的权限请求被拒绝后都会抛异常。
各位有更好的办法吗?