我正在清理在其 list 中请求以下内容的应用代码:
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] “类型不匹配”检查已启用。 Not every version Android 使用了@RequiresPermission 注解。
我的配置:编译 SDK 版本 23,最小 14,目标 22,构建工具版本 25.0.1
最佳答案
我刚刚试了一下,您确实应该收到缺少权限的警告。实际上它甚至不是警告而是错误。该选项位于 Settings -> Editor -> Inspections -> Android -> Constant and Resource Type Mismatches
中,如果您阅读说明,您会看到类似
Calling a method that requires a permission without having declared that permission in the manifest
这在 AS 2.2.3 上
更新:
我刚刚检查了一个编译 sdk 23 的项目,在 AccountManager 的源代码中实际上有 @RequiresPermission
关于android - 哪些类可能需要 *_ACCOUNTS 和相关权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545470/