创建桌面快捷方式:
//创建快捷方式
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>
当此方法调用时就会去创建快捷方式.现在开发中很少使用