我在Google Play商店开发并发布了一个应用程序,它只向REST API发送简单的String
请求,并将结果存储在Preferences
中。同一应用也会提交到 Windows 应用商店进行发布,但由于以下原因被拒绝:
应用声明使用敏感功能 [音乐库、图片库、视频库],而不显示访问声明的功能。请删除敏感功能声明并重新提交应用。
在检查Google Play商店提交时,我注意到请求了相同的权限:
此应用程序可以访问:照片/
- 媒体/文件
- 读取USB存储的内容
- 修改或删除 USB 存储的内容
- 存储
- 读取 USB 存储的内容
- 修改或删除 USB 存储的内容
- 其他
- 从互联网接收数据
- 查看网络连接
- 完全网络访问
- 防止设备休眠
所以我的问题是,Preferences
真的需要这些权限,还是我可以设置某种构建提示来删除这些权限请求,尤其是对于 UWP 构建?我也尝试设置android.blockExternalStoragePermission
构建提示,但在 Android 构建中仍然请求权限。我还没有尝试过iOS构建,因为目前我没有苹果开发者帐户。
提前非常感谢你。
编辑#1(23/10/2018(:
经过进一步检查,我发现我错误地将没有声明android.blockExternalStoragePermission
的版本上传到Google Play商店,所以在Android版本上一切都很好。
目前我没有使用任何 cn1libs,以下是我的应用程序中导入的所有类的列表:
java.util.HashMap
java.util.Map
java.util.Random
com.codename1.components.InfiniteProgress
com.codename1.components.ToastBar
com.codename1.components.ToastBar.Status
com.codename1.io.CharArrayReader
com.codename1.io.JSONParser
com.codename1.io.Log
com.codename1.io.NetworkManager
com.codename1.io.Preferences
com.codename1.io.rest.Response
com.codename1.io.rest.Rest
com.codename1.l10n.L10NManager
com.codename1.ui.Button
com.codename1.ui.Component
com.codename1.ui.Container
com.codename1.ui.Dialog
com.codename1.ui.FontImage
com.codename1.ui.Form
com.codename1.ui.Label
com.codename1.ui.events.ActionEvent
com.codename1.ui.events.ActionListener
com.codename1.ui.layouts.BorderLayout
com.codename1.ui.layouts.FlowLayout
com.codename1.ui.layouts.GridLayout
com.codename1.ui.plaf.Border
com.codename1.ui.plaf.Style
com.codename1.ui.plaf.UIManager
com.codename1.ui.util.Resources
所以我最初的问题仍然存在,如何设置构建提示以防止在 Windows 和 iOS 中使用相同的外部存储读/写权限?
请参阅此处标题为"Android 权限"的部分,以获取一些可能触发额外权限的 API 的列表。我建议从 XML 中提取清单并检查它。根据您的描述,它应该包括两个权限,您应该在那里有两个权限:
-
android.permission.WRITE_EXTERNAL_STORAGE
- 当您应用android.blockExternalStoragePermission
时,您应该已被禁用 -
android.permission.INTERNET
- 你真正需要的这个
我假设您拥有媒体访问的权限,这里变成了它来自哪里的问题?
您是否使用了可能包含触发此问题的功能的 cn1lib?
应用程序中是否有尚未激活的功能?
一旦你有了这个调查的具体名称或结果,请在这里评论,我会用更详细的细节修改答案。