我们可以在 Android 中不要求就获得危险的权限吗?

Posted

技术标签:

【中文标题】我们可以在 Android 中不要求就获得危险的权限吗?【英文标题】:Can we get dangerous permissions without asking for it in Android? 【发布时间】:2019-05-06 20:50:27 【问题描述】:

我的理解是,我们不能在不请求权限的情况下使用 android 的危险功能。但是我遇到了这个应用程序,它是一个相机应用程序。我已经将它安装在 android Marshmallow 以上的 3 台设备上,但它从未要求在任何这些设备上使用相机权限,但它的相机仍然可以工作。 有人可以解释一下这怎么可能?谢谢!

申请链接:https://play.google.com/store/apps/details?id=com.jb.zcamera

【问题讨论】:

【参考方案1】:

解决它的唯一方法是使用 22 或更低版本的目标 SDK。在这种情况下,将在安装时请求权限。 Note,您将无法通过目标 SDK 低于 26 的 Play 商店分发您的应用。

If the device 运行 Android 5.1(API 级别 22)或更低,或应用的 targetSdkVersion 为 22 或更低,系统在安装时要求用户授予权限。

相机权限是dangerous permission。

Check for permissions

如果您的应用需要危险权限,您必须在每次执行需要该权限的操作时检查您是否拥有该权限。从 Android 6.0(API 级别 23)开始,用户可以随时撤消任何应用的权限,即使该应用的目标 API 级别较低。因此,即使该应用昨天使用了相机,也不能假设它今天仍然拥有该权限。

您引用的应用程序要求运行时权限。

This answer 讨论了可能滥用 Android 权限的情况。这需要向 Google 报告。

【讨论】:

我认为第一句话有点令人困惑/误导。也许删除它 @TimCastelijns 你现在怎么看? 请注意,如果 targetSdk 低于 26,您将无法通过 Play 商店分发您的应用 @TimCastelijns 是的,我要添加这个应用,看起来它是 2018 年制作的。所以它不能是低目标 sdk【参考方案2】:

如果未授予危险权限,则不会使用相机。但是,它仍然可以通过将使用Intent 拍照的过程委托给另一个相机应用程序来为您拍照。

见Take Photos

【讨论】:

非常感谢您抽出宝贵时间回复。但据我了解,该应用程序正在使用自定义相机活动。它还安装了一个图库应用(它也从不要求任何权限)。 @AimanMuzafar 不能多说。这些是技术限制。另一种方法是系统应用程序。 感谢 Murat Karagoz,非常感谢您的帮助 :)

以上是关于我们可以在 Android 中不要求就获得危险的权限吗?的主要内容,如果未能解决你的问题,请参考以下文章

java中的泛型T与通配符?概念入门

Android 怎样获得手机信息

离散数学里图论一章中的树的权值是啥意思?而且在求最小生成树中不知道怎么算权,超级不解中.望解答!谢谢

Android:hook很“危险”,使用需谨慎。

Android权限之动态权限

依赖是危险的吗? [关闭]