配置权限
在Manifest.xml文件中配置添加快捷方式的权限
<!-- 添加快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
首次启动软件创建快捷方式的判断(使用SharedPreferences )
/**
* 首次启动软件是否创建快捷方式
*/
private void shouldFun(){
SharedPreferences share = getSharedPreferences("data", Activity.MODE_PRIVATE);;
boolean isShortcut = share.getBoolean("isShortcut",false);
if (!isShortcut) {// 如果是false的话代表首次启动
Editor editor = share.edit();
editor.putBoolean("isShortcut", true);
editor.commit();
addShortcut();//调用添加快捷方式的方法
}
}
创建快捷方式
添加快捷方式,是向桌面应用(launcher)发送相关一个创建快捷方式action的广播,相关的action如下:
new Intent("com.android.launcher.action.INSTALL_SHORTCUT")
完整代码:
/**
* 为程序创建桌面快捷方式
*/
private void addShortcut() {
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
// 快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
shortcut.putExtra("duplicate", false); // 不允许重复创建
// 快捷方式的动作(点击后跳转到入口Activity)
Intent myIntent = new Intent(this, MainActivity.class);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myIntent);
// 快捷方式的图标
ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
activity.sendBroadcast(shortcut);
}