Android FileNotFound может читать и существует ложные медиа файлы WhatsApp - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь прочитать файл, который существует, но я не могу. Спасибо!

enter image description here

File f = new File("/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg");

File sdDir = Environment.getExternalStorageDirectory();
Log.w("Whatsapp","#SDDIR CANREAD? "+ sdDir.canRead() +" PATH: "+ sdDir.getAbsolutePath());

f.setReadable(true,false);
Log.w("Whatsapp","#FILE: "+ f.getName() +" l:"+ f.length() +" exists:"+ f.exists() +" canRead:"+ f.canRead() +" PATH: "+ f.getPath() +" ABSOLUTE: "+ f.getAbsolutePath());

LOG

#SDDIR CANREAD? false PATH: /storage/emulated/0
#FILE: IMG-20180628-WA0000.jpg l:0 exists:false canRead:false PATH: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg ABSOLUTE: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg

enter image description here

enter image description here

Разрешения AndroidManifest

<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.MANAGE_DOCUMENTS" />

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Works!

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

enter image description here

0 голосов
/ 30 июня 2018

Во-первых, у вас нет произвольного доступа на чтение и запись к съемному хранилищу .

Во-вторых, большинство вещей в Android чувствительны к регистру. Таким образом, ваши <uses-permission> элементы не будут работать.

В-третьих, вы не можете иметь разрешение MANAGE_DOCUMENTS, так как оно недоступно для обычных приложений.

Таким образом, вы можете исправить свой манифест, заменив существующие элементы <uses-permission> на:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Однако у вас все еще может не быть доступа к этому конкретному файлу.

...