您能否帮助在Android中为动态快捷方式配置应用程序包?
应用程序代码通过 build.gradle 使用产品调味 品牌。
productFlavors {
branda {
applicationId "com.bb.branda"
...
}
brandb {
applicationId "com.bb.brandb"
...
}
...
...
}
对于静态快捷方式,可以在 shortcuts.xml 文件中的标记" targetPackage"下配置它们。
例如。的机器人:targetPackage =" com.bb.branda"
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android" >
<shortcut
android:shortcutId="contact_us"
android:enabled="true"
android:icon="@drawable/home_contactus_icon"
android:shortcutShortLabel="@string/label.contactus"
android:shortcutLongLabel="@string/label.contactus"
>
<intent
android:action="contactus"
android:targetPackage="com.bb.brand"
android:targetClass="com.bb.launcher.LauncherActivity"
/>
<categories android:name="android.shortcut.conversation" />
</shortcut>
对于动态快捷方式,可以在下面的代码段中完成相同的工作吗?
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
ShortcutManager shortcutManager = ctx.getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(ctx, shortcutId)
.setShortLabel(sTitle)
.setLongLabel(sTitle)
.setIcon(Icon.createWithResource(ctx, resID))
.setIntent(new Intent(sIntentAction))
.build();
shortcutManager.addDynamicShortcuts(Arrays.asList(shortcut));
}
提前致谢。
答案 0 :(得分:0)
如果您想要实现的是指定intent的包,您可以通过以下方式创建intent:
Intent intent = new Intent(sIntentAction);
intent.setComponent(new ComponentName("your.package.id", YourActivity.class.getName()));
ShortcutInfo shortcut = new ShortcutInfo.Builder(ctx, shortcutId)
.setShortLabel(sTitle)
.setLongLabel(sTitle)
.setIcon(Icon.createWithResource(ctx, resID))
.setIntent(intent)
.build();