Android API 26+在主屏幕上安装时创建应用程序的快捷方式不起作用

时间:2018-09-16 18:11:32

标签: android

我正试图摆脱从API 26开始弃用EXTRA_SHORTCUT ...的警告。我的代码似乎可以正常工作,但主页上没有出现该图标。

private void installShortcut(Context c) {
    Intent intent = new Intent(
        c.getApplicationContext(), c.getClass());
    intent.setAction(Intent.ACTION_MAIN);
    if (Build.VERSION.SDK_INT >= 26) {
        ShortcutInfo shortcutInfo
            = new ShortcutInfo.Builder(c, "shortcutID")
                .setShortLabel(appName)
                .setIcon(
                   createWithResource(
                      c, R.drawable.qmark))
                .setIntent(intent)
                .build();
        ShortcutManager sm 
             = c.getSystemService(ShortcutManager.class);
        sm.createShortcutResultIntent(shortcutInfo);
    }
    else ...

我可以使用调试器逐步执行代码,一切似乎都可以进行。我在日志猫上没有看到任何警告。而且我找不到该问题的当前答案。

谢谢 史蒂夫·S。

1 个答案:

答案 0 :(得分:1)

我发现了一个类似的问题,使我找到了答案。原来,您现在需要使用固定的快捷方式。我在Jessica Thornsby于AndroidAthority上找到了一个出色的演示,该演示发布于2018年3月20日,涉及在Nougat和Oreo上实现快捷方式的捷径,对我来说这一切都融为一体。 请参见my reply,以获取与我的代码非常相似的问题。

我在github的主页上放置了一个简单的应用程序,该应用程序除了为其自身安装了快捷方式外,什么也不做。它适用于Android 8之前和之后的版本。Android8之前的版本会在创建固定的快捷方式之后使用sendBroadcast方法。