Чтение и запись Android без запроса разрешения - Theta
Мне нужно разрешение на чтение и запись для моего плагина, я много чего пробую.
В манифесте
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
но не работает после v23
согласно другим сообщениям, поэтому я пытаюсь с requestPermission
но мое приложение вылетает, и в реальном случае у меня нет интерфейса.
Я использую RICOH THETA Plug-in SDK
Я пытаюсь использовать BitmapFactory
и получил эту ошибку
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/DCIM/100RICOH/R0010156.JPG (Permission denied)
Если у кого-то есть идеи, как это сделать. Спасибо.
3 ответа
Не волнуйся. Магазин подключаемых модулей THETA предоставляет все разрешения автоматически во время установки. В реальных условиях использования пользователям не нужно предоставлять разрешения вручную. Вам нужно предоставить разрешения вручную только на время разработки.
Официальный документ описывает, что
Декларация разрешений
При установке из магазина RICOH THETA, в зависимости от уровня защиты, установленного в файле манифеста, разрешение предоставляется автоматически. Во время разработки используйте приложение, которое отображает экран, такое как Vysor, и предоставьте разрешение в настройках приложения или в диалоговом окне плагина.
Сначала вы должны проверить версию Android
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED {
// do work
} else {
String[] permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, 100);
}
}
} else {
// do work
}
Вы должны дать разрешение вручную в Android 6 и выше, используйте ссылку библиотеки Dexter https://github.com/Karumi/Dexter