Я пытаюсь воспроизвести аудио из хранилища, когда я нажимаю на элемент, по какой-то причине файл возвращает false для существует (), у меня есть разрешение на чтение и запись на внешнее хранилище, и файл находится там и, кажется, не поврежден, мойфайл в формате .mp4, который я буду воспроизводить как тип аудио.
это мои разрешения:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
поставщик:
<provider
android:authorities="com.aliaskarurakov.android.mycallrecorderdemo"
android:name="android.support.v4.content.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
xml:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
это мой метод:
public void playAudio(){
String path = Environment.getExternalStorageDirectory() + "/tempAudioFile/temp.mp4";
Log.d("path", "onClick: path = "+path);
Intent intent = new Intent(Intent.ACTION_VIEW);
File file = new File(path);
Log.i("", "onResponse: name "+file.getName());
if (file.exists()){
Log.i("", "onResponse: I EXIST");
} else {
Log.i("", "onResponse: dont exist?");
}
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(getUriForFile(context,"com.aliaskarurakov.android.mycallrecorderdemo",file), "audio/*");
context.startActivity(intent);
}