Я использую Android Studio и виртуальное устройство (Nexus 5 S на x86).
Я пытаюсь в целях тестирования прочитать двоичный файл из внешнего хранилища.
Когда я подключаюськ устройству с 'adb shell' к устройству, я могу найти файл в / storage / emulated / 0
В своей тестовой деятельности я просто поместил это:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String filename = "basse-normandie.map";
final File file = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath(), filename);
Log.i("FileTests", "file is '"+file.getAbsolutePath()+"'");
Log.i("FileTests", "file exists: "+file.exists());
file.setReadable(true);
Log.i("FileTests", "app can read file: "+file.canRead());
}
ив манифесте я положил
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Я думаю, что WRITE_EXTERNAL_STORAGE бесполезен.
В окне logcat я получаю это:
06-25 19:03:46.648 5107-5107/org.airforce_one.filetests I/FileTests: file is '/storage/emulated/0/basse-normandie.map'
file exists: true
app can read file: false
и я могу 'я не могу понять, что я делаю ... Каждая страница, которую я просматривал в сети, говорит мне, что нужно давать разрешения, но никаких других подсказок ...