java - Android 6.0 Manifest.xml 中的 <uses-permission> 与 <permission>

标签 java android permissions

我知道我必须在 Android 6 中使用新的权限模型。(在运行时在 Activity 或 Fragment 中检查并请求权限)

我的问题是生成的Manifest.java文件。当我使用<uses-permission>时它自动与 Android < 6.0 配合使用,但不会在 Manifest.java 中创建这些条目文件和类。为此我必须使用 <permission> Manifest xml 文件中的标记。

这是正常的方式吗?我使用额外的 <permission> 做得对吗?标签?

因为如果我必须在 Manifest xml 文件中使用这两个标签,我就会生成这样的冗余

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

更新1

好吧,看来Manifest.java我一添加 <permission> 就会生成标记到我的 Manifest.xml,这是我所做的,因为 Mixpanels Cloud Messaging 插件看起来像这样

<permission
    android:name=           "${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<permission android:name="com.google.android.c2dm.permission.RECEIVE" />

有没有办法手动包含位于/sdk/platforms/android-XX 文件夹中的原始 Manifest.java?

最佳答案

权限

声明可用于限制对此应用程序或其他应用程序的特定组件或功能的访问的安全权限。请参阅Permissions简介部分,以及 Security and Permissions有关权限如何工作的更多信息,请参阅文档。

使用权限

在某些情况下,您请求的权限可能会影响 Google Play 过滤您的应用的方式。

如果您请求与硬件相关的权限(例如相机),Google Play 会假设您的应用程序需要底层硬件功能,并从不提供该功能的设备中过滤掉该应用程序。

要控制过滤,请始终在元素中显式声明硬件功能,而不是依赖 Google Play 来“发现”元素中的要求。然后,如果您想禁用特定功能的过滤,可以在声明中添加 android:required="false"属性。

有关暗示硬件功能的权限列表,请参阅 uses-feature 的文档元素。

关于java - Android 6.0 Manifest.xml 中的 <uses-permission> 与 <permission>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299940/

相关文章:

java - Maven 只推送 jsp 无需重新编译

Java Nimbus Look and Feel per component customization ("Nimbus.Overrides") - 其他实例也受影响

Java Swing - 用户警报

android - 用于 kotlin 的 Android 中的静态等效项,以避免处理程序内存泄漏

java - 如何在 Openfire 中使用 smack

java - 默认抽屉导航 View 到 ExpandableListView

android - SimpleDiskCache inputStream 数字格式错误

linux - 如何读/写/etc/network/interfaces文件

tfs - 哪些权限允许用户在 TFS 2017 Build 中创建任务组?

mysql - 无法正常启动Mariadb?