前言: 最近一直在看Launcher模塊,經過差不多兩個月學習,終於摸透了Launcher的一些主要功能實現,目前繼續還處於
摸索狀態。未看Launcher時,於我而言,只能膜拜,以為所有功能都是它實現的 ;入門後,才發現,Launcher的很多功能只是
集成了框架/應用程序提供的功能。很多陌生的東西,只有接觸了才感歎:“oh ,原來是這樣的!”
今天先給大家分享下Launcher如何實現添加快捷方式(Shortcut) ,後續會慢慢增加其他方面的功能,幫助大家“一葉而知秋”。
本文相關工程源碼下載
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/1月/9日/Android中實現Launcher功能之添加快捷方式/
具體來說,Launcher中的快捷方式有兩種類型:
1 、"偽"快捷方式 —— 應用程序類型
2 、"真"快捷方式 —— Activity具備<action/>為ACTION_CREATE_SHORTCUT的配置信息
這兩種類型的快捷方式是怎麼勾搭在一起的,在下面大家通過代碼自己理解,也不方便細說了。
關於如何創建一個”真”快捷方式(Shortcut)的App ,大家可以先去看看楊豐盛老師的博客《Android特色開發之桌面組件》 ,
從中我們可以掌握如何創建一個快捷方式,實現也不是很難。
知識點介紹:
知識點一 、ACTION_PICK_ACTIVITY使用說明 ,具體可以參考SDK Intent類
功能:顯示匹配附加值為EXTRA_INTENT的所有Activity,並將它們以列表呈現給用戶。當用戶從該列表選中一項
時,並不會啟動該Activity(這與與ACTION_CHOOSER不同,此Action會啟動用戶選擇的Activity),而是將該Activity的詳細信
息(可能包括Action、ComponentName、data信息等)以Intent對象返回給調用者(通常為onActivityResult方法)。
附加值:EXTRA_INTENT 顯示所有匹配顯示所有匹配附加值為EXTRA_INTENT的Activity,
EXTRA_TITLE 作為顯示列表即所有Activity的標題 。
因此,根據ACTION_PICK_ACTIVITY的特性,真正地創建快捷方式需要兩步走:
第一步:發送ACTION_PICK_ACTIVITY以及EXTRA_INTENT,找到我們希望能創建快捷方式的Activity列表。
第二步:根據第一步所選擇的Activity返回的Intent對象,再次發送此Intent對象,即可創建該Activity提供給
我們快捷方式了。
例如,下面我們只是簡單的發送一個請求顯示所有應用程序的Intent,如下:
ACTION_PICK_ACTIVITY效果圖如下:
點擊某一具體Activity , 即可選擇創建該Activity的快捷方式了。