【问题标题】:Remove WRITE_EXTERNAL_STORAGE and READ_EXTERNAL_STORAGE permissions from Android Project从 Android 项目中删除 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 权限
【发布时间】:2022-01-06 20:55:07
【问题描述】:

我从项目的 AndroidMainfest.xmlAssemblyInfo.cs 文件中删除了 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限。

我将 .apk 上传到 Play 商店,并且在 Bundle 权限中显示了写入和读取权限。

然后我使用 Android Studio 中的Analyze APK 功能分析了.apk,其中AndroidMainfest.xml 具有WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE

虽然我在运行时要求CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage),但是当我删除它并分析APK时,它仍然在Manifest文件中包含WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE权限。

然后我将android:requiredFeature="false" 标志添加到写入和读取权限,如下所示:

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

当我再次分析 APK 时,android:requiredFeature="false" 具有写入和读取权限。但是在 Play 商店中,在 Bundle 权限中它们和以前一样。

我不知道为什么这些权限会在那里结束?

【问题讨论】:

  • 它们可以从依赖库中合并。您可以检查您正在使用的任何库是否在其清单文件中具有这些权限。
  • @Sergey 非常感谢您的评论。我解决了。请在下面查看我的答案..

标签: android xamarin xamarin.android google-play


【解决方案1】:

@Sergey 评论:它们可以从依赖库中合并。您可以检查您正在使用的任何库是否在其清单文件中具有这些权限。

我查了一下,发现这篇文章 How Libraries can silently add permissions to your Android AppFix成功了

但我正在使用相机,并且我将这些图片存储在Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 中。这需要WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限。

所以,我用FileSystem.CacheDirectory 替换了路径并且它起作用了(内部存储不需要清单文件中的读写权限)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多