问题:需要使用 Media Store Api 或无法访问文件 - 目标 sdk 为 30 时 Google Play 控制台拒绝

Posted

技术标签:

【中文标题】问题:需要使用 Media Store Api 或无法访问文件 - 目标 sdk 为 30 时 Google Play 控制台拒绝【英文标题】:Issue : Need to use Media Store Api or No Access to Files - Google Play Console Rejection when target sdk was 30 【发布时间】:2021-12-20 21:21:27 【问题描述】:

嗨,编程小伙伴们

我已将我们的 apk 上传到 google play console,但他们拒绝了我们的 apk 并提到使用 Media Store Api 用于相机和图库。

我的应用已经实现并使用了 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 权限,并且在所有 android 版本上都可以正常工作

当我将目标 sdk 更改为 30 并提交应用程序时出现问题。这些是我用于 READ WRITE 操作的权限。

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

我也附上了谷歌播放拒绝的屏幕截图。以前我尝试使用 MANAGE_EXTERNAL_STORAGE 权限,但我们的应用仍然被拒绝

如果有人遇到此问题,请发布解决方案

谢谢...

Play Console Rejection

Play Console Rejection

【问题讨论】:

你的愿望已经满了。解决方案已在此处发布数倍于遇到相同问题的人。 你的应用的核心功能是什么? 你能分享这些问题的链接吗? @blackapps 我们的应用程序的核心功能是消息传递,但在提交我们的应用程序时没有任何功能可用于复选标记...@SagarMaiyad 对于消息传递,他们不允许您使用此权限。检查谷歌提供的允许使用列表。 【参考方案1】:

在 Android 11 中,访问外部存储的方式发生了一些变化。

来源: Storage updates in Android 11

就我而言,我的问题是这样解决的:

    我在路径 src/main/res/xml 中添加了 file_path.xml

    FilePath

    我使用 getExternalFilesDir 来获取设备存储中的文件。

之前:

val mPath = Environment.getExternalStorageDirectory().toString() + "/Ticket_" + date + ".jpeg"

之后:

 val mPath = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString() + "/Ticket_" + date + ".jpeg"

希望能帮到你:)

【讨论】:

以上是关于问题:需要使用 Media Store Api 或无法访问文件 - 目标 sdk 为 30 时 Google Play 控制台拒绝的主要内容,如果未能解决你的问题,请参考以下文章

将 Windows Media Player 与 Windows Store App C++ 一起使用

Ant Media Server 的 iOS 框架不被 App Store 接受?

DOJO官方API翻译或解读-dojo/store (自定制存储器)

java.lang.RuntimeException:android.database.sqlite.SQLiteException:没有这样的表:media_store_extension(代码1)

在不断变化中,为啥需要 Store?

无法使用 JWT 令牌连接到 Apple App Store API