Я пытаюсь получить доступ к mp3 файлы в externalStorage и это мой код:MediaStore разрешение отказано ошибка андроид
public class MainActivity extends AppCompatActivity {
private LinearLayout viewL;
private String[] STAR = { "*" };
String fullpath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewL = (LinearLayout) findViewById(R.id.linear);
try{
String provider = "com.android.providers.media.MediaProvider";
Uri uri = Uri.parse("content://media/external/audio/media");
grantUriPermission(provider, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
grantUriPermission(provider, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
grantUriPermission(provider, uri, Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
Cursor cursor;
Uri allsongsuri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = android.provider.MediaStore.Audio.Media.IS_MUSIC + " != 0";
cursor = getContentResolver().query(allsongsuri, STAR, selection, null, null);
for(int i =0;i<1;i++){
cursor.moveToFirst();
fullpath = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
}
MediaPlayer mp = new MediaPlayer();
Uri myUri = Uri.parse(fullpath);
mp.setDataSource(this,myUri);
mp.prepare();
mp.start();
}
catch (Exception e){
Snackbar.make(viewL,e.toString(),Snackbar.LENGTH_LONG).show();
}
}
}
Это мой manifestFile:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.grassa"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.STORAGE" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Это мой LogCat:
Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=20241, uid=10113 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:453)
Как вы можете видеть, я добавил все необходимые разрешения, но все еще я получаю разрешение Отказано в ошибке Может кто-нибудь помочь мне с этим? ThankYou