rRemix/APlayer

[BUG] 荣耀30Pro HarmonyOS 2.0 系统中删除歌曲只是从 Aplayer 中删除,文件系统中没有删除

zhuangmax opened this issue · 3 comments

荣耀30Pro HarmonyOS 2.0 系统中删除歌曲只是从 Aplayer 中删除,文件系统中没有删除
对比 RetroMusicPlayer 可以成功删除,作为安卓小白,仔细研究终于发现原因

一个简单的解决办法是在 app/src/main/AndroidManifest.xml 中加上 android:requestLegacyExternalStorage="true"

git diff app/src/main/AndroidManifest.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 817f036..ff37c5a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -30,6 +30,7 @@
   </queries>

   <application
+    android:requestLegacyExternalStorage="true"
     android:allowBackup="true"
     android:icon="@mipmap/ic_launcher"
     android:label="@string/app_name"

如果有更好的办法还请告知我,并且在主线版本里解决这个问题,我可以帮忙测试

删除用的 MediaStore API,国内系统可能改废了,除了倒车之外没什么办法

requestLegacyExternalStorage 我记得应该是 Google 不允许所以删掉了

不过有 MANAGE_EXTERNAL_STORAGE,如果 Android 11 以上应该可以救一下

@Henry-ZHR 感谢及时回复,我看了我的荣耀30Pro是安卓10,API29,搜了网上有人说 “Android10是分区存储的过度版本,不建议开启分区存储。可以android:requestLegacyExternalStorage="true"来关闭Andorid10的分区存储。”, 也有说法“Android 11(API 30+)requestLegacyExternalStorage=true不执行任何操作,Android 10中提供了该功能,为开发人员提供了一个过渡/宽限期,使其能够迁移到作用域存储模型。”, 那是不是为了兼容安卓10,API29的机型,还是把这个配置加上呢

翻了一下,Google 自己也没说清楚 Android 10 的分区存储是个啥情况

你觉得需要那建议自己 pr