生成快捷方式有兩種情況,一種是直接在桌面直接生成;一種是長按桌面,在彈出的快捷菜單中生成。
談談在桌面上直接生成。個人覺得這個比較爽快,既然都是快捷方式了干嘛還要再隱藏一層呢?當然喜歡桌面干凈的就比較喜歡第二個了。
第一個是通過廣播(Broadcast)的形式向Luncher發送請求生成快捷方式的。
在網上找到關於這方面的注冊信息。
InstallShortcutReceiver的注冊信息:
<!--設置wallpapaer的activity -->
<!-- Intent received used to install shortcuts from other applications -->
<receiver
android:name="com.android.launcher2.InstallShortcutReceiver"
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
<intent-filter>
<action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
</intent-filter>
</receiver>
可以看出,要在桌面上創建快捷方式就需要權限了:
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT。
所以在我們的manifest.xml文件中,我們需要加入下面這段話:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
下面就是代碼層的實現:
假如我在一個activity中創建一個創建快捷方式的方法:createShortCut();
public void createShortCut(){
//創建快捷方式的Intent
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允許重復創建
shortcutintent.putExtra("duplicate", false);
//需要現實的名稱
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname));
//快捷圖片
Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//點擊快捷圖片,運行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , EnterActivity.class));
//發送廣播。OK
sendBroadcast(shortcutintent);
}