Android创建和删除桌面快捷方式
16lz
2022-05-29
1.创建快捷方式
- /**
- *为程序创建桌面快捷方式
- */
- privatevoidaddShortcut(){
- Intentshortcut=newIntent("com.android.launcher.action.INSTALL_SHORTCUT");
- //快捷方式的名称
- shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name));
- shortcut.putExtra("duplicate",false);//不允许重复创建
- //指定当前的Activity为快捷方式启动的对象:如com.everest.video.VideoPlayer
- //注意:ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序
- ComponentNamecomp=newComponentName(this.getPackageName(),"."+this.getLocalClassName());
- shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,newIntent(Intent.ACTION_MAIN).setComponent(comp));
- //快捷方式的图标
- ShortcutIconResourceiconRes=Intent.ShortcutIconResource.fromContext(this,R.drawable.icon);
- shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,iconRes);
- sendBroadcast(shortcut);
- }
2.删除快捷方式
- /**
- *删除程序的快捷方式
- */
- privatevoiddelShortcut(){
- Intentshortcut=newIntent("com.android.launcher.action.UNINSTALL_SHORTCUT");
- //快捷方式的名称
- shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name));
- //指定当前的Activity为快捷方式启动的对象:如com.everest.video.VideoPlayer
- //注意:ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式
- StringappClass=this.getPackageName()+"."+this.getLocalClassName();
- ComponentNamecomp=newComponentName(this.getPackageName(),appClass);
- shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,newIntent(Intent.ACTION_MAIN).setComponent(comp));
- sendBroadcast(shortcut);
- }
3.声明权限
在AndroidManifest.xml 文件中声明 创建和删除快捷方式时声明权限
- <uses-permissionandroid:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
- <uses-permissionandroid:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
更多相关文章
- android 数据库初体验
- Android中创建文件以及文件夹
- Android(安卓)创建单独的服务运行在后台(无界面)
- Android(安卓)创建菜单
- android 将bitmap缓存到本地
- android创建自定义对话框
- Android(安卓)封装http请求的工具类
- Android(安卓)room操作数据库
- Android创建和删除桌面快捷方式