unity版本为2019及之前版本
这个问题困扰了很久,国内网站始终找不到解决方案,github上总算找到了类似的问题,这是链接。
现象描述: 不开启VR Supported时,调用相机,可正常开启相机。开启相机前会弹出提示是否允许调用的对话框。当开启VR Supported,并添加Card Board时,无法调用相机,不会弹出提示是否允许的对话框。
问题原因: 开启VR Supported时,可能自动去掉了相机的权限请求,没有开启权限。
问题解决:
1、 如果是unity工程添加权限,打开Project Setting面板,勾选Player下的Custom main Manifest。按照提示路径打开AndroidManifest.xml文件。
如图所示,在文件对应位置添加以下代码。
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false"/>
<!-- camera permission -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2、 如果最终打apk包平台是在Android Studio
找到AndroidManifest.xml和AndroidManifest-Cardboard.xml(如有)在里面添加上述权限代码