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

How to check if user has given camera or location permissions (android) UNITY

我真的为此苦苦挣扎了一段时间 :( 因为我需要一个在 UNITY3D 中工作的 解决方案。

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

通常情况下,应用程序会在启动时请求此权限,但如果用户拒绝访问相机,我需要知道并稍后检查。

否则用户可以点击我制作的相机 UI 按钮并尝试通过网络摄像头纹理访问相机...这会导致应用程序 崩溃。

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

希望对您有所帮助:)