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