需要特定Android权限的Android API列表

9

有没有一种方法可以告诉我们哪些Android API需要特定的Android权限?例如,哪些API将需要GET_TASKS或REBOOT权限?我的应用程序从一个已经离开的人手中继承下来,清单中列出了这些权限。我不认为我们在使用它们,但如果我删除它们,我也担心会有不良后果。您有什么处理这个问题的想法吗?


如果项目不是很大,你可以自己检查。我这样认为... 也许并不存在一个好的答案。 - user942821
“害怕”这个词在这里不合适。你最好尽可能实现良好的测试覆盖率(最好是自动化测试),这样当你删除或做任何你想要的事情时,如果所有测试仍然通过,那就可以了。 - Alexander Kulyakhtin
1
请查看此线程。https://dev59.com/GGIi5IYBdhLWcg3w_QqH#24019120 - Ben Holland
3个回答

6

这两个权限都比较特殊,只有少数用途。

android.permission.REBOOT

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

调用PowerManager.reboot()需要该权限。

android.permission.GET_TASKS

该权限只被标记为dangerous,因此您的应用程序实际上可以获得它。

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

希望对您有所帮助!


谢谢。是否有官方文档发布这样的信息,还是这是内部知识? - John W
如果某个特定的API需要给定的权限,它将在SDK文档中说明,因此只需在SDK文档中搜索权限名称即可。您可以在框架源码的AndroidManifest.xml文件中找到安全级别。 - devunwired

2

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

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

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

PScout结果- Android权限和需要这些权限的方法的映射


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接