Android6.0にてobbファイルの中身にアクセスすると、権限がないと言われる(権限はgranted済みなのに)
今Android6.0の実機でアプリを開発しています。
java.io.FileNotFoundException: /mnt/obb/"詳細なマウントパス": open failed: EACCES (Permission denied)
上記エラーが出てしまいます。
obbファイル内の画像のにアクセスして読み出そうとするとエラーになるのですが、
obbはすでにmount済みで、外部ストレージへのアクセス権は取得済みです。
またobbファイルのRead権があることも確認しました。
それでもPermission deniedになる理由は何が考えられるでしょうか。
Manifest.xml
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
コード上でもアクセス権は確認済み。Androidの設定画面・アプリの設定からも確認済み。
int readPermission = ContextCompat.checkSelfPermission(activity, mPermissions[0]);
int writePermission = ContextCompat.checkSelfPermission(activity, mPermissions[1]);
Log.d("PermissionRead = ",String.valueOf(readPermission));
Log.d("PermissionWrite = ", String.valueOf(writePermission));
if (writePermission != PackageManager.PERMISSION_GRANTED ||
readPermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
activity,
mPermissions,
REQUEST_EXTERNAL_STORAGE_CODE
);
}
obbはアプリ起動時にmountしており、ERROR_ALREADY_MOUNTEDが返って来ます。
どうしようもないので、obbをunmount,再度mountしようかと思ったのですが、
force = trueでunmountを指示しても、 new OnObbStateChangeListenerが返ってこないです。応答無し。
何かいい方法ないでしょうか?