迁移到运行时权限:如何找到所有当前权限的使用情况?

6
有没有简单的方法来识别所有需要适应Android M(6、API 23)中运行时权限的API调用呢?似乎你只能通过测试、试错或专家知识(例如:查看API文档和源代码)来弄清楚。我原本以为Google会发布一个迁移工具,但我还没有看到任何证据。不这样做看起来会让你的应用程序容易受到运行时崩溃的影响,即使你没有在清单中使用运行时权限标签。
迁移到运行时权限的最佳实践是什么?

1
迁移到运行时权限的最佳实践是什么?战术上,坚持使用22或更低版本的targetSdkVersion。您的应用程序将像往常一样运行。如果用户禁用某些权限,则您应该从所有受影响的API调用中获得有效结果,只是没有太多的结果(例如,查询ContactsContract将表现为用户没有联系人,这是一个完全有效的状态,而不管运行时权限如何)。 - CommonsWare
如果您从清单中删除了所有权限,我认为lint会标记所有需要权限的调用...? - kris larson
@krislarson 我一直无法让它工作。你能确认一下linter是否对你有效,或者给我们指出一个例子吗?(例如,即使没有声明权限,也不会对Camera.open()发出警告。) - rcreswick
嗨,你找到了一些使用方法吗?我也在为同样的问题苦苦挣扎。 - kolczak
@kolczak 我领导了一个团队,为Android构建了一个深度静态二进制分析工具;我们正在重新利用该工具来完成这项任务,因为目前似乎还没有一个好的解决方案。它很快就会免费提供有限使用。 - rcreswick
听起来很酷,请保持更新。 - kolczak
1个回答

3

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