【VR】Cardboard SDK造成沒有裝置授權的問題
最近遇到了一個問題,使用Cardboard SDK導入Unity後,
發現在【安卓】裝置安裝時,Camera鏡頭竟然沒有做用戶授權。
沒有讓使用者選擇Camera授權。會導致一個很嚴重的問題,
假設用戶預設是關閉授權的話,這個服務會因此無法正常運行。
在詢問谷哥後,終於大致找到原因。
原因:
因為導入Cardboard SDK後,SDK會自動「跳過」授權
至於為什麼會跳過,
目前猜測是因為Cardboard SDK 在安卓的設定預設就是跳過。
解決方式:
將安卓的AndroidManifest.xml添加或變更
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false" />
讓跳過授權改為false。就可以解決問題。
實際流程:
(1)更改或添加AndroidManifest.xml (路徑在Asset\Plugins\Android\)
(2)AndroidManifest.xml 內容為下 (主要是SkipPermissionsDialog這個)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.unity3d.player" | |
android:installLocation="preferExternal" | |
android:theme="@android:style/Theme.NoTitleBar" | |
android:versionCode="1" | |
android:versionName="1.0"> | |
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" /> | |
<uses-feature android:name="android.hardware.camera" /> | |
<supports-screens | |
android:smallScreens="true" | |
android:normalScreens="true" | |
android:largeScreens="true" | |
android:xlargeScreens="true" | |
android:anyDensity="true"/> | |
<uses-permission android:name="android.permission.INTERNET" /> | |
<uses-permission android:name="android.permission.CAMERA" /> | |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> | |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |
<application | |
android:icon="@drawable/app_icon" | |
android:label="@string/app_name" | |
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" | |
android:debuggable="false"> | |
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity" | |
android:label="@string/app_name"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false" /> | |
<meta-data android:name="unityplayer.UnityActivity" android:value="true" /> | |
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" /> | |
</activity> | |
</application> | |
</manifest> | |
<!-- android:installLocation="preferExternal" --> |
張貼留言