8.0 新建快捷方式的坑

8.0+ 不能用之前的发送广播方法新建快捷方式,得用 ShortcutManager.
写代码:

1
2
3
4
5
6
7
8
9
10
11
12
  ShortcutManager shortcutManager = (ShortcutManager) context.getSystemService(Context.SHORTCUT_SERVICE);
...省略...
ShortcutInfo info = new ShortcutInfo.Builder(context, id)
.setIcon(...)
.setShortLabel(...)
.setIntent(launcherIntent)
.build();
if (shortcutManager.isRequestPinShortcutSupported()) {
shortcutManager.requestPinShortcut(info, null);
}else{
//启动器不支持
}

坑:

调用闪退

调试发现 launcherIntent 需要设置 action
改进:

1
launcherIntent.setAction(Intent.ACTION_VIEW);

闪退问题修复

无法重复新建快捷方式

看文档,得知 id 不能是一样的,否则当作已经添加过,不允许重复添加.
改进:
随机设置 id

有的启动器不支持

无解,等 Google填坑吧

photo_2018-06-20_20-56-51.jpg


8.0 新建快捷方式的坑
https://https.gs/archives/102/
作者
web1n
发布于
2018年6月20日
许可协议