假设我有应用程序A和B。应用程序B有多个构建版本,但每个版本略有不同,我想从应用程序A启动特定的版本。
我考虑使用一个自定义共享意图,但如果用户安装了多个B的版本,我不希望操作系统提示用户选择哪个版本来处理意图。
是否可能为应用程序的每个版本编程定义唯一的自定义意图?
假设我有应用程序A和B。应用程序B有多个构建版本,但每个版本略有不同,我想从应用程序A启动特定的版本。
我考虑使用一个自定义共享意图,但如果用户安装了多个B的版本,我不希望操作系统提示用户选择哪个版本来处理意图。
是否可能为应用程序的每个版本编程定义唯一的自定义意图?
为了在多个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>