如何检查用户是否给出了相机或位置权限(Android)Unity



我从一段时间起就真正为此而挣扎:(我需要一个在Unity3d中起作用的解决方案。

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

通常,该应用程序以开始启动时要求此权限,但是如果用户拒绝访问 对摄像机的访问权限,我需要知道并稍后检查。

否则,用户可以按我制作的相机UI按钮,并尝试通过WebCamTexture访问相机...并导致应用程序的崩溃。

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

感谢所有有解决这个问题的人。

检查此库:https://github.com/sanukin39/uniandroidpermission

在该库中,我得到了这些方法来检查和请求许可。

 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;
    }

希望它有帮助:)

最新更新