Android的READ_EXTERNAL_STORAGE权限

我正在尝试访问用户设备上的媒体文件(音乐)以进行播放;一个简单的“ hello world”音乐播放器应用。


我遵循了一些教程,它们基本上给出了相同的代码。但这是行不通的。它不断崩溃,并告诉我:


error.....

Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=27696, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

....

现在,这是我的清单文件:


<?xml version="1.0" encoding="utf-8"?>

<manifest

    xmlns:android="http://schemas.android.com/apk/res/android"

    package="slimsimapps.troff" >


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

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

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



<application

    android:allowBackup="true"

    android:icon="@mipmap/ic_launcher"

    android:label="@string/app_name"

    android:theme="@style/AppTheme" >

    <activity

        android:name=".MainActivity"

        android:label="@string/app_name" >

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />


            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

</application>

</manifest>

这是我的Java方法:


public void initialize() {

    ContentResolver contentResolver = getContentResolver();

    Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;

    Cursor cursor = contentResolver.query(uri, null, null, null, null);

    if (cursor == null) {

        // query failed, handle error.

    } else if (!cursor.moveToFirst()) {

        // no media on the device

    } else {

        do {

            addSongToXML(cursor);

        } while (cursor.moveToNext());

    }

}


慕仙森
浏览 552回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android