【发布时间】:2017-10-16 16:09:32
【问题描述】:
是否有任何选项可以检查android中的可访问权限状态(是否授予应用程序)。
都试过了(来自this 帖子)
private boolean checkWriteExternalPermission()
{
String permission = Manifest.permission.BIND_ACCESSIBILITY_SERVICE;
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);
}
和
PackageManager pm = context.getPackageManager();
int hasPerm = pm.checkPermission(
android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE,
context.getPackageName());
if (hasPerm != PackageManager.PERMISSION_GRANTED) {
// do stuff
}
但在这两种情况下,无论权限的状态如何,结果都是否定的。即使服务正在使用权限结果是-1
请检查 cmets 以获取正确答案,它不再能够接收答案。感谢 abdu 和 Duna
【问题讨论】:
-
ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR);read -
我已经尝试过了,但无论状态如何,它都会返回 -1(我使用 Manifest.permission.BIND_ACCESSIBILITY_SERVICE)
-
public static boolean isAccessibilityEnabled(Context context, String id) { AccessibilityManager am = (AccessibilityManager) context .getSystemService(Context.ACCESSIBILITY_SERVICE); List
runningServices = am.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK); for (AccessibilityServiceInfo service : runningServices) { if (id.equals(service.getId())) { return true; } } 返回假; } -
你能把这个作为答案发布吗
标签: java android android-studio permissions