快捷方式删除不成功的解决办法
来源:互联网 发布:洗脑神曲排行榜 知乎 编辑:程序博客网 时间:2024/05/22 10:44
首先创建和删除的代码如下:
public void addShortcut(Context context) { Intent shortcutIntent = new Intent(); shortcutIntent.setClassName("com.telespree.android.client", "com.telespree.android.client.ShortcutTest"); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Intent intent = new Intent(); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ShortcutTest"); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon)); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); shortcutUri = intent.toUri(MODE_WORLD_WRITEABLE); context.sendBroadcast(intent); }
public void removeShortcut(Context context) { Intent intent = null; try { intent = Intent.parseUri(shortcutUri, 0); } catch (URISyntaxException e) { } intent.setAction("com.android.launcher.permission.UNINSTALL_SHORTCUT"); context.sendBroadcast(intent); }
解决的办法如下:
Try to use
public void removeShortcut(Context context) { Intent intent = new Intent(); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ShortcutTest"); try { Intent shortcutIntent = Intent.parseUri(shortcutUri, 0); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); } catch (URISyntaxException e) { } intent.setAction("com.android.launcher.permission.UNINSTALL_SHORTCUT"); context.sendBroadcast(intent); }
Note: You do not have to save shortcutUri
to remove the shortcut. Instead you can use
Intent shortcutIntent = new Intent();shortcutIntent.setClassName("com.telespree.android.client", "com.telespree.android.client.ShortcutTest");shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);Intent intent = new Intent();try { intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, Intent.parseUri(shortcutIntent.toUri(0), 0));} catch (URISyntaxException e) { e.printStackTrace();}...intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");context.sendBroadcast(intent);
If you want to use intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
instead of
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, Intent.parseUri(shortcutIntent.toUri(0), 0));
then you need to set action for shortcutIntent
each time , i.e. while installing as well as while uninstalling e.g.Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
参考资料:
Trying to UNINSTALL_SHORTCUT but shortcut won't go away
- 快捷方式删除不成功的解决办法
- 如何删除快捷方式的小箭头【解决办法】
- android程序卸载后无法删除桌面快捷方式的解决办法
- android程序卸载后无法删除桌面快捷方式的解决办法
- android程序卸载后无法删除桌面快捷方式的解决办法
- android程序卸载后无法删除桌面快捷方式的解决办法
- Android开发中之删除手机电话薄中的一条数据时之删除不成功的解决办法
- resize实例不成功的解决办法
- VVDocumenter安装不成功的解决办法
- VVDocumenter安装不成功的解决办法
- Vmtools安装不成功的解决办法
- 删除快捷方式的箭头
- 删除桌面上的快捷方式
- 如何删除快捷方式的箭头
- 如何删除快捷方式的箭头
- Android删除桌面上的快捷方式
- 快捷方式的添加与删除
- 快捷方式的创建与删除
- 標準C++的類型轉換:static_cast、dynamic_cast
- windows 环境变量
- SQL基础5
- 设计模式总结—创建型模式
- mysql 互为主备的简单搭建
- 快捷方式删除不成功的解决办法
- QT MD5 SHA1加密使用
- 完美解决Ubuntu下vi编辑器方向键变字母的问题
- 有一个无效 SelectedValue,因为它不在项目列表中。
- SpringMVC无法使用AOP拦截控制器
- 如何编译ffmpeg以支持dshow设备
- android消息推送
- pathon教程
- spring_aop_基本概念