的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動作)


沒有留言:
張貼留言