LoginSignup
4
5

More than 3 years have passed since last update.

Quest2でファイルが参照できない問題の解決法

Last updated at Posted at 2020-11-27

OculusQuest2でREAD_EXTERNAL_STORAGE権限を与えてもファイルが参照されない問題についての解決法が分かったので備忘録としてQiitaに置いときます。。

経緯

Quest1からQuest2に同じアプリをビルドしてみたタイミングでvideoplayerでurl指定したはずの動画が流れず

原因

Quest2がandroid10になっていた(Questは8.0)

解決方法

手順1

android:requestLegacyExternalStorage = "true"AndroidManifest.xmlのアプリケーションタグに追加する。

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
  <application android:label="@string/app_name" android:icon="@mipmap/app_icon" android:allowBackup="false" android:requestLegacyExternalStorage="true">
    <activity android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:excludeFromRecents="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
      <meta-data android:name="com.oculus.vr.focusaware" android:value="true" />
    </activity>
    <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false" />
    <meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_only" />
    <meta-data android:name="com.oculus.supportedDevices" android:value="quest|delmar" />
  </application>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" />
</manifest>

AndroidManifest
textファイルなのでxmlに変換してAssets/Plugins/Androidに置く。

手順2
bildtoolのバージョンを上げる。(android:requestLegacyExternalStorage = "true"がapiレベル29で追加されたものなのでbildtoolのバージョンを上げないとエラーが起きる。)

Android Studioをインストールし"Android 10.0 API Level29"をインストールする。
スクリーンショット 2021-01-09 002951.png
生成されたsdkファイルを"C:/Program Files/Unity/Hub/Editor/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/"
に置き換える。(ローカルディスクに保存して参照するのもあり。)

これでbuildするとbuildtoolのバージョンが上がっている。はず
上がっているかどうかは "プロジェクトネーム/Temp/gradleOut/build.gradle"を開くと確認できる。
スクリーンショット 2021-01-09 003923.png

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5