我正在清理在其清单中请求以下内容的应用程序的代码:
android.permission.GET_ACCOUNTS
android.permission.AUTHENTICATE_ACCOUNTS
android.permission.MANAGE_ACCOUNTS
android.permission.USE_CREDENTIALS
android.permission.INTERACT_ACROSS_USERS_FULL
问题是:在搜索可能要求的内容时,我应该查找哪些类/包导入?
我已经搜索过AccountManager - 没有点击。它们可能不再需要它们,但我希望知道我可以肯定的地方。
我看不到“缺少权限”选项 如果我删除所有权限,包括所有网络,READ_PHONE_STATE和READ_EXTERNAL_STORAGE,应用程序构建,启动,则WifiManager.getWifiState会因与ACCESS_WIFI_STATE相关的SecurityException崩溃。
[EDIT2] 启用“类型不匹配”检查。 Android的Not every version使用了@RequiresPermission注释
我的配置:编译SDK版本23,分14,目标22,构建工具版本25.0.1
答案 0 :(得分:1)
我刚试了一次,你确实应该收到错过权限的警告。实际上它甚至不是警告而是错误。该选项位于Settings -> Editor -> Inspections -> Android -> Constant and Resource Type Mismatches
,如果您阅读说明,则会看到类似
在未声明的情况下调用需要权限的方法 清单中的权限
这在AS 2.2.3上
更新:
我刚刚使用compile sdk 23检查了一个项目,在AccountManager的源代码中实际上有@RequiresPermission