【发布时间】:2018-03-21 10:00:12
【问题描述】:
如何检测用户拒绝创建固定快捷方式的权限?
ShortcutManager 类中没有 cancel 回调。
既然是系统对话框,有没有办法将权限调用为 startActivityForResult 并返回结果?像自定义活动 Gmail 示例:https://developer.android.com/guide/topics/ui/shortcuts.html#pinned
和,
如何禁止重复快捷方式。即使存在快捷方式,以下代码也会创建相同的快捷方式?
代码:
ComponentName cn = new ComponentName(context.getPackageName(),
"com.abc.SplashActivity");
ShortcutInfo pinShortcutInfo =
new ShortcutInfo.Builder(context, "unique-id").setShortLabel("UPI Shortcut").setIntent(getShortcutIntent()).setActivity(cn).build();
Intent pinnedShortcutCallbackIntent =
mShortcutManager.createShortcutResultIntent(pinShortcutInfo);
pinnedShortcutCallbackIntent.setAction(Intent.ACTION_MAIN);
pinnedShortcutCallbackIntent.putExtra("duplicate", false);
PendingIntent successCallback = PendingIntent.getBroadcast(context, 0,
pinnedShortcutCallbackIntent, 0);
mShortcutManager.requestPinShortcut(pinShortcutInfo,
successCallback.getIntentSender());
此外,此代码与 Pixel 模拟器完美配合,但拖动创建快捷方式特别不适用于 Essential 手机。拖动图标后,回到家后图标消失。
【问题讨论】:
-
找到解决方案了吗?
标签: android android-8.0-oreo android-shortcut