Android - 我如何知道所有需要特定权限的方法?

Android - How do I know all methods that require a certain permission?

我从事的项目目前需要 21 (!) 个权限。

我想清理它,因为我认为其中很多都是不必要的(例如,有一个 android.permission.CALL_PHONE 的许可可以删除,因为几乎相同的事情可以通过IntentACTION_DIAL).

我想知道的是一种方法,获得许可(例如,android.permission.AUTHENTICATE_ACCOUNTS)找到所有需要该许可的方法

请注意,相反的情况很容易,即给定一个方法,很容易找到该方法是否需要任何权限(只需转到文档并检查),但反过来呢?

如果您没有设置权限,编译器不会警告您。不,应用程序只是在运行时崩溃。

抱歉,您必须走很远的路,搜索您认为可能需要权限的方法并将其删除

再次研究后,我在 SO 上遇到了类似的问题。 Ben Holland 解释说有 2 项关于这个问题的研究。 None 提出的解决方案 100% 完美,但这是我们迄今为止最好的解决方案。

更多详细信息,请访问:

在这里您可以找到 PScout 找到的所有需要​​ Android 权限的方法。 PScout 是一个工具,可以完成您需要的这项特定工作,但原始网站已离线。

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