安卓應用建立快捷方式的最新操作(相容安卓8.0)
阿新 • • 發佈:2018-12-17
在安卓8.0以前,如果需要給安卓APP建立快捷方式,需要使用到廣播機制。
而在最新的安卓8.0中,舊的廣播建立快捷方式方式是已經過時甚至失效了的。
而新的快捷方式使用了一個新的類:ShortcutManager,谷歌在拋棄舊機制的同時,在ShortcutManager上加了個相容:ShortcutManagerCompat,使用它就能分分鐘搞定原本繁瑣的快捷方式建立了~
那麼不多廢話,直接上工具類(複製貼上即可使用~):
首先新增許可權:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
之後呼叫方法即可:
public class ShortcutUtils { //使用當前APP的啟動圖示建立快捷方式 public static void installShortCut(Context context, String shortcutID, String name, Intent intent) { if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) { intent.setAction(Intent.ACTION_MAIN); //新的建立機制,判斷唯一性的方法更改為ShortcutID了,預設不允許重複建立ID相同的快捷方式 ShortcutInfoCompat pinShortcutInfo = new ShortcutInfoCompat.Builder(context, shortcutID).setShortLabel(name).setIntent(intent).build(); Intent pinnedShortcutCallbackIntent = ShortcutManagerCompat.createShortcutResultIntent(context, pinShortcutInfo); PendingIntent successCallback = PendingIntent.getBroadcast(context, 0, pinnedShortcutCallbackIntent, 0); ShortcutManagerCompat.requestPinShortcut(context, pinShortcutInfo, successCallback.getIntentSender()); } } //使用自定義圖示建立快捷方式 public static void installShortCut(Context context, String shortcutID, String name, IconCompat iconCompat, Intent intent) { if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) { intent.setAction(Intent.ACTION_MAIN); ShortcutInfoCompat pinShortcutInfo = new ShortcutInfoCompat.Builder(context, shortcutID).setShortLabel(name).setIntent(intent).setIcon(iconCompat).build(); Intent pinnedShortcutCallbackIntent = ShortcutManagerCompat.createShortcutResultIntent(context, pinShortcutInfo); PendingIntent successCallback = PendingIntent.getBroadcast(context, 0, pinnedShortcutCallbackIntent, 0); ShortcutManagerCompat.requestPinShortcut(context, pinShortcutInfo, successCallback.getIntentSender()); } } }
最後,如果您覺得這個工具類為您省下了大量時間的話,不妨給博主發個紅包吧,一分也是愛呀~