Android创建桌面快捷方式就是在桌面这个应用上创建一个快捷方式,桌面应用:launcher2
通过查看launcher2的清单文件:
<!-- 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>
可以看出来,创建桌面快捷方式,是通过Broadcast。
那么想要创建一个快捷方式的话,就发送这个广播就可以了。
同时注意,清单文件中写的很清楚,需要权限:com.android.launcher.permission.INSTALL_SHORTCUT,所以需要在清单文件中添加权限。
同时需要在添加快捷方式的名称,图标和该快捷方式干什么事情(一个含有action等信息的intent)
携带的信息:使用intent.pueExtra()
名称:Intent.EXTRA_SHORTCUT_NAME
图标:Intent.EXTRA-SHORTCUT_ICON
意图:Intent.EXTRA_SHORTCUT_INTENT
创建桌面快捷方式的代码:
Intent intent = new Intent();
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "桌面快捷方式");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
Intent shortIntent = new Intent();
shortIntent.setAction("android.intent.action.MAIN");
shortIntent.addCategory("android.intent.category.LAUNCHER");
shortIntent.setClassName(getPackageName(), "com.xxx.mobile.activity.WelcomeActivity");
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortIntent);
sendBroadcast(intent);
通过以上代码,就可以创建一个桌面快捷方式了。