Android:是否可以在 AndroidManifest.xml 文件中读取包名

标签 android android-manifest

我有一个问题,是否可以读取 AndroidManifest.xml 中的包名

我是说

我有一个 AndroidManifest.xml 如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackagename"
    android:installLocation="auto"
    android:versionCode="1"
    android:versionName="1.0" >

....

</manifest>

现在我必须添加权限(用于 GCM)

<permission
        android:name="MYPACKAGENAME.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

是否可以在上面的权限标签中动态地用com.mypackagename替换MYPACKAGENAME。

最佳答案

您可以删除名称的包名称部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackagename">
    ...

    <permission
        android:name=".permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    ...
</manifest>

当您的权限名称以 .它会自动以包名称为前缀。

您不能动态更改包名称,但您可以通过在 build.gradle 中定义 applicationId 然后在 android list 中为名称添加前缀 ${applicationId} 来做某些事情。

在 build.gradle 中:

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.2"
    productFlavors {
       development {
           applicationId = "com.mypackage.development"
       }
    }
}

然后在你的 AndroidManifest.xml 中有:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackagename">
    ...

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

    ...
</manifest>

您可以从这里找到更多信息:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

后一种方法将允许您同时运行应用的开发版本和生产版本。我希望这会有所帮助。

关于Android:是否可以在 AndroidManifest.xml 文件中读取包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439004/

相关文章:

android - OnProvideAssistDataListener 示例

java - 使用同名节点的 Android/Java XML 解析

android - 在电脑上通过 USB 远程控制 Android 设备,设备屏幕和声音必须传输到电脑

android - 在 Dart/Flutter 中识别一个 2D 列表是否包含一个列表

android - 使用 ConstraintLayout 创建背景

java - DisplayMessageActivity 后退按钮使我的 Android 应用程序崩溃

android - 更新 Activity 的 Intent

android - 是否有用于反转颜色修改的 configChanges

Android Studio 生成错误的 list 代码

android - 我什么时候应该在 Android 中使用 FACTORY_TEST 权限?