Unity构建的Android应用如何申请权限?AR应用相机权限弹窗不显示如何解决
问题原因
你的UnityManifest.xml中配置了unityplayer.SkipPermissionsDialog为true,该配置会直接禁用Unity默认的启动权限申请弹窗,这是无法自动弹出相机权限申请的核心原因。
解决步骤
- 修改UnityManifest.xml中的对应配置,将
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />的value属性改为false,也可以直接删除该行配置。 - 若应用目标版本为Android 6.0(API 23)及以上,除了在清单文件声明权限,还需要在C#代码中主动调用权限申请接口,在启动AR功能前完成权限校验,参考代码如下:
using UnityEngine; using UnityEngine.Android; public class CameraPermissionRequester : MonoBehaviour { void Start() { // 检查是否已经获取相机权限,未获取则发起申请 if (!Permission.HasUserAuthorizedPermission(Permission.Camera)) { Permission.RequestUserPermission(Permission.Camera); } } }
- 进入Unity编辑器的
Edit > Project Settings > Player > Android > Publishing Settings,确认你已勾选使用自定义AndroidManifest.xml,避免Unity自动生成的清单文件覆盖你修改的内容,同时确认Minimum API Level配置不低于23。
补充注意事项
如果你使用AR Foundation或ARCore SDK开发,需要将SDK的初始化逻辑放在相机权限获取成功之后执行,避免出现AR功能初始化失败的问题。
内容的提问来源于stack exchange,提问作者Aniket29
相关产品推荐
相关产品推荐

