创建桌面快捷方式:
//创建快捷方式 private void installShortcut() { // <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> //快捷方式只能创建一次 boolean installed = PrefUtils.getBoolean(this,"shortcut_installed", false); if (!installed) { //发一个广播 Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //图标 intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));//BitmapFactory: 将资源文件id转成Bitmap对象 //名称 intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷测试"); //动作 Intent actionIntent = new Intent(); //跳到主页面, 隐式意图 action actionIntent.setAction("com.loaderman.demo"); actionIntent.addCategory(Intent.CATEGORY_DEFAULT); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, actionIntent); sendBroadcast(intent); PrefUtils.putBoolean(this, "shortcut_installed", true); } }
public class PrefUtils { public static void putBoolean(Context ctx, String key, boolean value) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); sp.edit().putBoolean(key, value).commit(); } public static boolean getBoolean(Context ctx, String key, boolean defValue) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); return sp.getBoolean(key, defValue); } }
在清单文件添加权限和创建配置需要跳转界面的action
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <action android:name="com.loaderman.demo" /> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
当此方法调用时就会去创建快捷方式.现在开发中很少使用