在 Android 应用程序的 Manifest 文件中声明不相关的权限会产生什么后果?

如何解决在 Android 应用程序的 Manifest 文件中声明不相关的权限会产生什么后果?

我为 WearOS 开发表盘。我试图通过创建一个包含我所有项目的通用代码的基本模块来模块化我的代码。除其他外,它应该包含负责应用内购买的代码。为此,我必须添加 <uses-permission android:name="com.android.vending.BILLING"/>。但是,有些项目没有应用内购买。因此,这些项目会继承 BILLING 权限,但实际上并不需要它。

所以我的问题是:

  • 有办法解决吗?像一种有条件地指定清单的方面的方法吗?
  • 如果我只是让这个 BILLING 权限进入,即使它不是必需的,会有什么后果?
  • 更一般地说,是否有更多“危险”权限可以在不需要时允许?

解决方法

有办法解决吗?像一种有条件地指定 Manifest 方面的方法吗?

我认为没有办法不declaring permissions in the manifest

如果我只是让这个 BILLING 权限进入,即使它不是必需的,会有什么后果?

如果是install-time permission,系统会自动授予。但如果是 runtime-permission,则必须在使用前在运行时请求权限。

因此,如果您声明不需要的权限,最好的情况是什么都不会发生。但我不太清楚这样做会引起什么样的安全问题。

请注意,在您的应用中请求不需要的权限是against good practice

注意:仔细考虑您在应用清单中声明的​​权限。仅添加您的应用所需的权限。对于您的应用请求的每项权限,请确保它为用户提供了明确的好处,并且请求的完成方式对他们来说是显而易见的。

另见this post

删除权限

您还可以考虑删除您在基本模块中声明的(子)模块中的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>
,

上传应用时,您需要完成一个Permissions declaration,然后应用才能通过审核。您想要做的事情似乎与 Play 商店“Permissions policy”指南明确背道而驰:

您只能请求在 Play 商品详情中宣传的应用中实施当前功能或服务所需的权限。

鉴于此,我希望您的应用无法通过审核(或者如果它以某种方式第一次通过了审核,如果在稍后阶段被发现,可能会在未来的审核中失败)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?