0

正如文档所说:

如果您的应用面向 Android 7.1(API 级别 25)或更高版本,您可以定义应用中特定操作的快捷方式。

  • 固定的快捷方式在运行时发布,也使用 ShortcutManager API。在运行时,您的应用可以尝试固定快捷方式,此时用户会收到一个确认对话框,询问他们是否允许固定快捷方式。仅当用户接受固定请求时,固定的快捷方式才会出现在受支持的启动器中。 关联

因此,应该可以在 API 级别 25 本身及更高级别中使用固定快捷方式,但在代码中我得到 Error that Calls require API level 26.

所有PinShortcut方法都会发生这种情况,例如:

if (android.os.Build.VERSION.SDK_INT >=  Build.VERSION_CODES.N_MR1)
            ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
            if (shortcutManager.isRequestPinShortcutSupported()) {
               //do something
            }
}

或者

shortcutManager.createShortcutResultIntent(pinShortcutInfo);

这些代码行得到并且 API Level 26 is required 错误。

问题是什么?为什么 Document 和 SDK 说的不一样?我该如何解决这个问题?

4

1 回答 1

1

虽然ShortcutManager是在 API 25 中添加的,但它的一些方法后来在 API 26 中添加。

您可以在文档中看到在 API 26 中添加了isRequestPinShortcutSupportedcreateShortcutResultIntent方法。

换句话说:

  • 在 API 25 中,您可以在您的应用程序中启用快捷方式,但如果用户想要这些快捷方式,则必须手动将它们添加到主屏幕。
  • 在 API 26 中,您可以使用这两种新方法请求将这些快捷方式自动添加到主屏幕。
于 2018-07-05T21:32:38.957 回答