如何检查用户是否已授予相机或位置权限(android)UNITY

如何检查用户是否已授予相机或位置权限(android)UNITY,android,unity3d,permissions,android-permissions,Android,Unity3d,Permissions,Android Permissions,从一段时间以来,我一直在努力解决这个问题:(因为我需要一个在UNITY3D中工作的解决方案。 我需要检查用户是否已授予访问Android设备摄像头的权限(以及第二层的位置) 通常,应用程序启动时会在启动时请求此权限,但如果用户拒绝访问摄像头,我需要知道并稍后检查 否则,用户可能会点击我制作的摄像头UI按钮,并尝试通过webcamtexture访问摄像头……这将导致应用程序崩溃。 由于Android API 23,您不能忽略或已经通过更改Android清单授予权限,就像我读了几篇文章后尝试的那样

从一段时间以来,我一直在努力解决这个问题:(因为我需要一个在UNITY3D中工作的解决方案。

我需要检查用户是否已授予访问Android设备摄像头的权限(以及第二层的位置)

通常,应用程序启动时会在启动时请求此权限,但如果用户拒绝访问摄像头,我需要知道并稍后检查

否则,用户可能会点击我制作的摄像头UI按钮,并尝试通过webcamtexture访问摄像头……这将导致应用程序崩溃。

由于Android API 23,您不能忽略或已经通过更改Android清单授予权限,就像我读了几篇文章后尝试的那样

感谢所有有想法解决此问题的人。

查看此库:

在那个库中,我得到了这些检查和请求权限的方法

 public static void requestPermission(String permissionStr){
        if(!hasPermission(permissionStr)) {
            UnityPlayer.currentActivity.requestPermissions(new String[]{permissionStr}, 0);
        }
    }

    public static boolean hasPermission(String permissionStr) {
        if(Build.VERSION.SDK_INT < 23) {
            return true;
        }
        Context context = UnityPlayer.currentActivity.getApplicationContext();
        return context.checkCallingOrSelfPermission(permissionStr) == PackageManager.PERMISSION_GRANTED;
    }
publicstaticvoidrequestpermission(字符串permissionStr){
如果(!hasPermission(permissionStr)){
UnityPlayer.currentActivity.requestPermissions(新字符串[]{permissionStr},0);
}
}
公共静态布尔hasPermission(字符串permissionStr){
如果(Build.VERSION.SDK_INT<23){
返回true;
}
Context Context=UnityPlayer.currentActivity.getApplicationContext();
返回context.checkCallingOrSelfPermission(permissionStr)=PackageManager.PERMISSION\u已授予;
}

希望有帮助:)

非常感谢@Bhuvanesh Bs!!这解决了我遇到的问题。能在这里得到这么好的帮助真是太好了。:)谢谢,这个lib在什么都做不到的时候起了作用。即使在apk中检查最终清单时,我也被授予了所有权限,但应用程序从未要求这些权限。这可能会以某种方式覆盖它们