检查哪些代码使用权限

Posted

技术标签:

【中文标题】检查哪些代码使用权限【英文标题】:Checking which code uses permissions 【发布时间】:2016-08-20 09:07:43 【问题描述】:

我最近更改了一个以 Marshmallow 为目标的应用,如您所知,我现在需要处理 Marshmallow 权限模型。

该应用程序有许多文件和数千行代码。除了蛮力的方式,即

关闭权限并使用应用,注意异常发生的地方

有没有更有效的方法来找出哪些 api 调用行请求某些权限,以便可以将它们包装在权限请求中?

【问题讨论】:

几周前我试图解决同样的问题,最好是我发现将 aspectJ 用于 android。但这不是快速的解决方案,而且可能很困难,因为您还需要为需要权限的方法创建切入点。其他方式(不是很好,但它会给你时间包装)设置 targetSdkVersion 小于 23。 【参考方案1】:

如果没有检测到权限检查,某些方法会引发 lint 错误(例如,使用 Google Play 服务进行位置更新。)要触发该操作,请运行“分析”>“检查代码”并查看 Android Lint 错误。

除了那种蛮力是唯一的方法。我必须为我正在处理的项目(还有数千行代码)执行此操作。我建议监视 Logcat 是否有错误并努力打击应用程序。不过要小心...如果您发现代码中的错误,那么它们可能不会出现在 logcat 中,因此您必须确保应用程序功能符合预期。

但是,这并不像听起来那么难。如果花点时间查看您的应用程序以及需要权限的潜在位置,您会发现它非常简单。查看本文以确定您需要哪些权限http://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en

【讨论】:

以上是关于检查哪些代码使用权限的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的权限都有哪些

如何检查某个用户是否具有某个权限对象上定义的某种权限

mysql有关权限的表都有哪几个

权限功能设计

如何修复“代码应明确检查权限是不是可用”错误

如何使用 Pathlib 检查文件夹/文件权限