每个应用程序口味的自定义意图?

3

假设我有应用程序A和B。应用程序B有多个构建版本,但每个版本略有不同,我想从应用程序A启动特定的版本。

我考虑使用一个自定义共享意图,但如果用户安装了多个B的版本,我不希望操作系统提示用户选择哪个版本来处理意图。

是否可能为应用程序的每个版本编程定义唯一的自定义意图?


1
可以的。只需为每个风味在清单文件中定义这些意图即可。 - tynn
1个回答

13

为了在多个flavor之间使用一个共享的AndroidManifest并为每个flavor设置唯一的意图,我在build.gradle中为每个flavor添加了一个manifest占位符。

default {
    manifestPlaceholders = [uriPrefix: "myprefix"]
}
someFlavor{
    manifestPlaceholders = [uriPrefix: "otherprefix"]
}
在AndroidManifest.xml中,可以像以下这样在intent filter中使用清单占位符:

在AndroidManifest.xml中的intent filter中使用清单占位符如下:


        <intent-filter>
            <action android:name="com.custom.app.${uriPrefix}.SOME_ACTION" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="${uriPrefix}" />
        </intent-filter>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接