每个应用程序风格的自定义意图?

Jak*_*ke_ 1 android android-intent

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

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

是否可以以编程方式为应用程序的每种风格定义独特的自定义意图?

Jak*_*ke_ 7

为了在多种风格之间使用一个共享的 AndroidManifest 并为每个风格具有独特的意图,我在 build.gradle 中为每种风格添加了一个清单占位符

default {
    manifestPlaceholders = [uriPrefix: "myprefix"]
}
someFlavor{
    manifestPlaceholders = [uriPrefix: "otherprefix"]
}
Run Code Online (Sandbox Code Playgroud)

在 AndroidManfest.xml 中,在意图过滤器中使用清单占位符,如下所示:

        <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>
Run Code Online (Sandbox Code Playgroud)