【问题标题】:Codename One Preferences/Storage permissions代号一首选项/存储权限
【发布时间】:2018-10-09 09:07:43
【问题描述】:

我在 Google Play 商店中开发并发布了一个应用程序,它只向 REST API 发送简单的String 请求并将结果存储在Preferences 中。同一个应用也提交到 Windows 应用商店发布,但由于以下原因被拒绝:

应用声明使用敏感功能 [musicLibrary、picturesLibrary、videosLibrary],但似乎没有访问声明的功能。请移除敏感能力声明并重新提交应用。

在检查 Google Play 商店提交后,我注意到请求了相同的权限:

此应用可以访问:

  1. 照片/媒体/文件
    • 读取 USB 存储的内容
    • 修改或删除 USB 存储的内容
  2. 存储
    • 读取 USB 存储的内容
    • 修改或删除 USB 存储的内容
  3. 其他
    • 从 Internet 接收数据
    • 查看网络连接
    • 完整的网络访问权限
    • 防止设备休眠

所以我的问题是,Preferences 是否真的需要这些权限,或者我可以设置某种构建提示来删除这些权限请求,尤其是对于 UWP 构建?我也尝试设置 android.blockExternalStoragePermission 构建提示,但在 Android 构建中仍然需要权限。由于目前我还没有 Apple Developer 帐户,因此我还没有尝试过 iOS 构建。

非常感谢您。

编辑 #1(2018 年 10 月 23 日):

经过进一步检查,我发现我错误地将未声明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 中的相同外部存储读/写权限?

    【问题讨论】:

      标签: codenameone


      【解决方案1】:

      请参阅标题为“Android 权限”here 的部分,了解可能触发额外权限的一些 API 的列表。我建议从 XML 中提取清单并检查它。根据您的描述,它应该包括两个权限,您应该在那里有两个权限:

      • android.permission.WRITE_EXTERNAL_STORAGE - 应用 android.blockExternalStoragePermission 时应该禁用它

      • android.permission.INTERNET - 你真正需要的这个

      我假设您有媒体访问权限,这里就变成了它来自哪里的问题?

      您是否使用了可能包含触发此功能的 cn1lib?

      您的应用中是否有尚未启用的功能?

      一旦您在此处获得此调查评论的具体名称或结果,我将修改答案并提供更多详细信息。

      【讨论】:

      • 抱歉回复晚了,但请查看我对问题的编辑。非常感谢@ShaiAlmog。
      • iOS 不需要该权限并且“正常工作”。我在该列表中没有看到任何可疑类,我必须检查 UWP 端口
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2012-08-27
      • 2012-03-09
      相关资源
      最近更新 更多