如何在自定义启动器中支持快捷方式固定?

2020年9月16日 12点热度 0条评论

我正在制作自己的Android启动器,我想对其他应用程序的请求做出反应,以向主屏幕添加快捷方式。

到目前为止,我只能发现,应用程序必须通过从ShortcutManager调用isRequestPinShortcutSupported()来检查是否支持快捷方式固定,然后通过调用requestPinShortcut()发送请求-但是我该如何实现另一面?

我不知道如何告诉ShortcutManager我的启动器要接收这些请求以及在哪里处理它们。我尝试注册各种BroadcastReceivers,但这还不够。

我能找到的唯一有用的东西是LauncherApps.PinItemRequest,可以从Intent创建它,但是我找不到如何接收这个Intent。

解决方案如下:

好的,我必须为此学习android源代码,但是我发现我需要创建一个如下的Activity:

<activity android:name=".Activities.AddShortcutActivity">
    <intent-filter>
        <action android:name="android.content.pm.action.CONFIRM_PIN_SHORTCUT" />
    </intent-filter>
 </activity>

然后在该活动的onCreate()中,我可以调用

LauncherApps().getPinItemRequest( this.getIntent() );

//handle request...

this.finish();

并根据要求执行我需要的任何操作。希望这对某人有帮助。