的BroadcastReceiver 的方法建立快捷 , Launcher 為了讓其他應用程式能建立自己的捷
徑所以就註冊了一個BroadcastReceiver 專門接收其他應用程式發出的建立捷徑訊息
徑所以就註冊了一個BroadcastReceiver 專門接收其他應用程式發出的建立捷徑訊息
下面是Launcher的AndroidManifest.xml文件中Install-ShortcutReceiver的註冊訊息
接下來我們就要宣告並發送一個用來告知Launcher要建立桌面捷徑的Intent , 不過首先我
們要從Launcher那取得權限 , 權限名稱宣告如下:
接著我們需要宣告一個Intent , 用他來告知Launcher建立桌面捷徑 , 而對於這一個用來
Creates a shortcut 的Intent來說 , 他必須包含三個資訊 , 下面是Android Reference
們要從Launcher那取得權限 , 權限名稱宣告如下:
private static final String INSTALL_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";
接著我們需要宣告一個Intent , 用他來告知Launcher建立桌面捷徑 , 而對於這一個用來
Creates a shortcut 的Intent來說 , 他必須包含三個資訊 , 下面是Android Reference
Activity Action: Creates a shortcut.
Input: Nothing.
Output: An Intent representing the shortcut. The intent must contain three extras:
SHORTCUT_INTENT (value: Intent),
SHORTCUT_NAME (value: String),
SHORTCUT_ICON (value: Bitmap) or SHORTCUT_ICON_RESOURCE (value: ShortcutIconResource).
程式碼實作如下:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent shortcutIntent = new Intent(INSTALL_SHORTCUT); // 如果宣告的Intent是用來建立桌面捷徑的話 // 必須在Intent中加入名稱 , 圖示 , 要執行的動作 // 所以此時 shortcutIntent.putExtra 分別載入 // 上面所需要的三個資訊 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name)); shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(this,R.drawable.logo)); //可以用 SHORTCUT_ICON (value: Bitmap)代替 shortcutIntent.putExtra("duplicate", false); // 如果桌面上已經存在了之前建立的捷徑 // 那麼參數false代表不能再建立相同的捷徑 // 預設為true , 代表允許重複建立捷徑 // 網路上有人使用 putExtra(EXTRA_SHORTCUT_DUPLICATE, false); // 我是使用Android 2.2的版本 , EXTRA_SHORTCUT_DUPLICATE 似乎已經被移除了 // 所以使用 "duplicate" 代替 Intent TaskIntent = new Intent(); // 這邊宣告的Intent代表要執行動作 TaskIntent.setComponent(new ComponentName(this.getPackageName(),".ShortcutTest")); // 執行主程式 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,TaskIntent); sendBroadcast(shortcutIntent); // 通知Launcher }
另外也別忘了在AndroidManifest.xml要加上uses-permission的標籤
成功之後就會出現以下的結果
當成功產生捷徑的時候 , 會有一個Toast訊息
接著可以看到桌面多出了一個Shortcut的捷徑!!!!
點擊捷徑就可以執行我們的主程式了 , 另外如果想把捷徑當作快速撥號的話 , 只要稍作修改如下
Intent TaskIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel://119")); //撥號動作 , 打119
相關文章:
[Android] 如何在桌面建立捷徑圖示 (2.接受Intent.ACTION_CREATE_SHORTCUT動作)
沒有留言:
張貼留言