public void createDeskShortCut() { // 创建快捷方式的Intent Intent shortcutIntent = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT"); // 不允许重复创建 shortcutIntent.putExtra("duplicate", false); // 需要现实的名称 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); // 快捷图片 Parcelable icon = Intent.ShortcutIconResource.fromContext( getApplicationContext(), R.drawable.logo); shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); Intent intent = new Intent(getApplicationContext(), LoadingActivity.class); // 下面两个属性是为了当应用程序卸载时桌面 上的快捷方式会删除 intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); // 点击快捷图片,运行的程序主入口 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); // 发送广播。OK sendBroadcast(shortcutIntent); Toast.makeText(getApplicationContext(), "创建桌面快捷方式测试", 0).show(); }
在启动界面的onCreate()中调用就可以,为避免重复创建,添加一个标记
SharedPreferences sharedPrefe = getSharedPreferences(Constants.SP_NAME, Context.MODE_PRIVATE); boolean isCreateDesk = sharedPrefe.getBoolean("isCreateDesk", true); if (isCreateDesk) { createDeskShortCut(); } SharedPreferences.Editor editor = sharedPrefe.edit(); editor.putBoolean("isCreateDesk", false); editor.commit();