Android 检查版本低于api 23的小米设备的权限

Android 检查版本低于api 23的小米设备的权限,android,permissions,android-permissions,user-permissions,android-5.1.1-lollipop,Android,Permissions,Android Permissions,User Permissions,Android 5.1.1 Lollipop,正如您所知,小米设备有自己的权限系统。我正在小米红米3、api 22、安卓5.1.1设备上测试我的应用程序。我想检查是否有权限访问摄像头和音频。但标准方法不起作用: ContextCompat.checkSelfPermission(getActivity().getApplicationContext(), "android.permission.CAMERA"); 返回0,尽管这不是真的 我找到了另一种方法,但它也不能正常工作: boolean b = hasSelfPermissionF

正如您所知,小米设备有自己的权限系统。我正在小米红米3、api 22、安卓5.1.1设备上测试我的应用程序。我想检查是否有权限访问摄像头和音频。但标准方法不起作用:

ContextCompat.checkSelfPermission(getActivity().getApplicationContext(), "android.permission.CAMERA");
返回0,尽管这不是真的

我找到了另一种方法,但它也不能正常工作:

boolean b = hasSelfPermissionForXiaomi(getActivity(),"android.permission.CAMERA");

    private boolean hasSelfPermissionForXiaomi(Context context,String permission){
    String permissionTop = AppOpsManagerCompat.permissionToOp(permission);
    if(permissionTop == null){
        // not dangerous
        return true;
    }
    int noteOp = AppOpsManagerCompat.noteOp(context,permissionTop, Process.myUid(),context.getPackageName());
    return noteOp == AppOpsManagerCompat.MODE_ALLOWED && checkSelfPermission(context,permission) == PackageManager.PERMISSION_GRANTED;
}
b=正确,尽管这不是正确的


伙计们,你们知道如何检查小米设备的权限吗?

你们不需要检查api级别<23的权限。在api级别低于23的小米手机中,系统在使用前自行请求许可。@Nabinbandari您有点错了。在使用相机之前,系统会立即提示您获得许可。在我的应用程序中,相机是随机需要的,我需要这样做,以便事先提供许可。我的意思是相同的,当用户拒绝许可时会发生什么?@nabinhandari相应地,如果用户没有授予使用相机的许可,相机将无法工作。我可以在使用相机之前检查权限吗?我想你不能。你不需要检查api级别<23的权限。在api级别低于23的小米手机中,系统在使用前自行请求许可。@Nabinbandari您有点错了。在使用相机之前,系统会立即提示您获得许可。在我的应用程序中,相机是随机需要的,我需要这样做,以便事先提供许可。我的意思是相同的,当用户拒绝许可时会发生什么?@nabinhandari相应地,如果用户没有授予使用相机的许可,相机将无法工作。我可以在使用相机之前检查一下许可证吗?我想你不能。