与代码不兼容的文档中固定的快捷方式最低API级别

时间:2018-07-05 20:09:19

标签: android android-8.0-oreo android-7.1-nougat android-api-levels android-shortcut

如文档所述:

  

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

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

因此,应该可以在API级别25本身和 上面的代码,但是在代码中出现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是必需的错误。

出什么问题了?为什么Document和SDK会说不同的话? 以及我该如何解决?

1 个答案:

答案 0 :(得分:1)

在API 25中添加了ShortcutManager时,稍后在API 26中添加了其某些方法。

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

换句话说:

  • 在API 25中,您可以在应用中启用快捷方式,但是如果用户想要在主屏幕中将快捷方式添加到主屏幕,则必须手动将其添加到主屏幕。
  • 在API 26中,您可以请求使用这两种新方法将这些快捷方式自动添加到主屏幕。