【问题标题】:A list of Android APIs that require certain Android permissions需要特定 Android 权限的 Android API 列表
【发布时间】:2012-05-25 17:38:58
【问题描述】:

有没有办法判断哪些 Android API 是否需要某个 Android 权限?例如,哪些 API 需要 GET_TASKS 或 REBOOT 权限?我的应用程序是从一个早已离开的人那里继承而来的,它在清单中列出了这些权限。我不认为我们在使用它们,但我也担心如果我删除它们会产生不好的后果。关于如何处理这个问题的任何想法?

【问题讨论】:

  • 如果项目不大。你可以自己检查。我想是的......一个好的答案可能不存在。
  • “害怕”不属于这里。您可能应该尝试实现良好的测试覆盖率(最好是自动测试),然后您删除或做任何您想做的事情,如果所有测试仍然通过,那么没关系。

标签: android permissions


【解决方案1】:

这两个权限都非常专业,只有少数用途。

android.permission.REBOOT

首先,此权限的保护级别为signatureOrSystem,因此除非您的应用程序是自定义 ROM 的一部分,或者您有权访问您正在安装它的平台的签名密钥,否则该应用程序不会甚至被授予权限。]

需要拨打PowerManager.reboot()

android.permission.GET_TASKS

这个权限只标注了dangerous,所以你的应用其实可以获取到这个权限。

ActivityManager 中有两个调用需要此权限,getRecentTasks()getRunningTasks() 以获取有关系统中当前应用程序任务的信息。自定义 Launcher 应用程序经常使用它来填充任务列表。

HTH

【讨论】:

  • 谢谢。是否有官方文档发布此类信息,或者这是内幕消息?
  • 如果一个特定的 API 需要给定的权限,它会在 SDK 文档中说明,所以这只是在 SDK 文档上搜索权限名称。您可以在框架源的 AndroidManifest.xml 中找到安全级别。
【解决方案2】:

PScout 是一种分析 Android SDK 并生成映射的工具,将 Android 权限映射到需要这些权限的方法。

原来的 PScout 网站不再工作,但我从原来的 PScout 中提取了映射并将其推送到 Github。如果需要,您可以轻松检查并解析它。

在这里您可以找到 PScout 找到的所有需要​​ Android 权限的方法。

PScout results- map of Android permissions and methods that require those permissions

【讨论】:

    【解决方案3】:

    取出每一块然后运行。如果它继续工作,请保留已删除的内容并将权限列表向下移动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多