آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آیا فقط با مجوز READ_EXTERNAL STORAGE میتوان تمام آهنگ های موبایل را لود و پلی کرد ؟

Amirhussein  3 ماه پیش  3 ماه پیش
0 0

سلام من دارم یک Music player  می نویسم. طبق داکیومنت گوگل برای دسترسی به فایل های media در اندروید 10 به بالا فقط به READ_EXTERNAL_STORAGE نیاز هست.برنامه روی شبیه ساز با اندروید 7 تا 12 کار می کنه ولی روی موبایل خودم که اندروید 10 هست ارور Permission denied رو میده !

سوالم اینه که برای دسترسی به فایل های موسیقی و پلی کردنشون  تو اندروید 10 به بالا چه مجوز هایی احتیاج داره ؟

آیا حتما باید از MANGE_EXTERNAL_STORAGE استفاده کرد ؟ راه دیگه ای وجود نداره ؟

و این که چرا فقط روی گوشی های واقعی ارور permission denied رو میده و توی امیولیتور درست کار می کنه ؟

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

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


<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@drawable/amir_tataloo__man_bahat_ghahram"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false"
android:theme="@style/Theme.MusicPlayer"
tools:targetApi="31">

<activity
android:name=".PlayListActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

 

ارور log cat موبایل خودم :

FATAL EXCEPTION: main
Process: com.example.musicplayer, PID: 25265
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: java.io.FileNotFoundException: /storage/emulated/0/Download/Sasy - Gentleman.mp3: open failed: EACCES (Permission denied)
    at libcore.io.IoBridge.open(IoBridge.java:496)
    at java.io.FileInputStream.<init>(FileInputStream.java:159)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1237)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1208)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1173)
    at com.example.musicplayer.PlayListActivity$handleRecyclerView$1.onItemClick(PlayListActivity.kt:82)
    at com.example.musicplayer.MySongAdapter.onBindViewHolder$lambda$0(MySongAdapter.kt:36)
    at com.example.musicplayer.MySongAdapter.$r8$lambda$a8Hmn1z3bXNdzC3RJ1fPrlvimpM(Unknown Source:0)
    at com.example.musicplayer.MySongAdapter$$ExternalSyntheticLambda0.onClick(Unknown Source:4)
    at android.view.View.performClick(View.java:7870)
    at android.view.View.performClickInternal(View.java:7839)
    at android.view.View.access$3600(View.java:886)
    at android.view.View$PerformClick.run(View.java:29363)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:7948)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
    at libcore.io.Linux.open(Native Method)
    at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
    at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
    at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7825)
    at libcore.io.IoBridge.open(IoBridge.java:482)
    at java.io.FileInputStream.<init>(FileInputStream.java:159)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1237)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1208)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1173)
    at com.example.musicplayer.PlayListActivity$handleRecyclerView$1.onItemClick(PlayListActivity.kt:82)
    at com.example.musicplayer.MySongAdapter.onBindViewHolder$lambda$0(MySongAdapter.kt:36)
    at com.example.musicplayer.MySongAdapter.$r8$lambda$a8Hmn1z3bXNdzC3RJ1fPrlvimpM(Unknown Source:0)
    at com.example.musicplayer.MySongAdapter$$ExternalSyntheticLambda0.onClick(Unknown Source:4)
    at android.view.View.performClick(View.java:7870)
    at android.view.View.performClickInternal(View.java:7839)
    at android.view.View.access$3600(View.java:886)
    at android.view.View$PerformClick.run(View.java:29363)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:7948)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)

 

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .