Android O如何创建一个不会打开活动的主屏幕快捷方式

时间:2017-12-27 03:13:24

标签: android shortcut homescreen android-8.0-oreo

我试图在我的播放器应用中创建一个主屏幕快捷方式,该快捷方式将触发特定直播流的播放,而无需打开活动。 不幸的是,这不起作用......

ShortcutManager sM = c.getSystemService(ShortcutManager.class);

    Intent intent2 = new Intent(c.getApplicationContext(), APPBroadcastReceiver.class);
    intent2.setAction("toggle_intent");
    intent2.putExtra("id", 1);
    ShortcutInfo  shortcut2 = new ShortcutInfo.Builder(c,MSG_SHORCUT_CUSTOM)
            .setIntent(intent2)
            .setShortLabel("ShortLabel")
            .setLongLabel("LongLaber")
            .setDisabledMessage("DisabledMessage")
            .setIcon(Icon.createWithResource(c, R.mipmap.ic_add_outline_short))
            .build();
    listshortcut.add(shortcut2);

    Intent pinnedShortcutCallbackIntent = mShortcutManager.createShortcutResultIntent(shortcut2);
    PendingIntent successCallback = PendingIntent.getBroadcast(context, 0,  pinnedShortcutCallbackIntent, 0);

mShortcutManager.requestPinShortcut(pinShortcutInfo, successCallback.getIntentSender());

创建了短片,但是当我按下它时我得到的是“未安装应用程序”#39; 只要我通过活动替换我的Receiver类,活动就会打开。

是否可以触发从主屏幕快捷方式打开活动的自定义意图?

1 个答案:

答案 0 :(得分:2)

不直接。据我所知,应用程序快捷方式只能指向groupBy。但是可以制作一个非常简短的Activities,只需将Activity转发给您的Intents

BroadcastReceiver

特别是,public class IntentForwardActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent broadcastIntent = new Intent(getIntent()); broadcastIntent.setClassName(getApplicationContext(), APPBroadcastReceiver.class); sendBroadcast(broadcastIntent); finish(); } } 不需要布局或致电Activities