我试图用我的应用设置铃声。为此,我需要在手机的外部存储器中写入声音。但每次我尝试这样做时都会收到此错误:
FATAL EXCEPTION: main
Process: com.mtoy.tiboxinshape, PID: 26322
java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=26322, uid=10211 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1231)
at com.mtoy.tiboxinshape.SoundAdaptateur$2.onLongClick(SoundAdaptateur.java:142)
at android.view.View.performLongClick(View.java:5243)
at android.view.View$CheckForLongPress.run(View.java:21127)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我不明白为什么我仍然有这个错误,因为我在manifest.xml中有以下行:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
您是否知道如何避免出现此错误?
答案 0 :(得分:0)
答案 1 :(得分:0)
Android已更改权限接受最新 23 API级别,在此过程中某些权限将在安装时自动授予,可以在Manifest中提及,剩余权限是在RunTime中接受,因为如此许多坏人试图通过这个安全漏洞收集用户的个人数据所以Android更改为运行时权限
有关运行时许可的更多信息和运行时允许接受的过程
在链接下方暂停
Every Android Developer must know about new Android's Runtime Permission