近期在进行数字展厅项目时,发现安装好的APP在设备重启后应用图标就消失了,APP无法打开,但事实上在应用里仍然能够找到刚才安装的APP,从网上尝试了多种方法(SD卡、本地安装等)都没能解决。
今天安装应用宝和QQ的时候,发现桌面上生成了两个应用图标,于是查看其应用权限,发现其使用了【快捷方式】的功能。
于是,参照这个思路,实现了数字展厅的快捷方式:
//创建桌面快捷方式
Intent shortCutIntent =new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortCutIntent.putExtra("duplicate",false);
shortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"数字展厅V");
shortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(),R.mipmap.ic_launcher));
Intent intent =new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.setClass(getApplicationContext(), MainActivity.class);
shortCutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
// 发送广播
getApplicationContext().sendBroadcast(shortCutIntent);
除了上述通过广播创建快捷方式的代码外,还需要添加快捷方式相关权限,如下所示:
<!--创建桌面快捷方式-->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>