我正试图摆脱从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。
答案 0 :(得分:1)
我发现了一个类似的问题,使我找到了答案。原来,您现在需要使用固定的快捷方式。我在Jessica Thornsby于AndroidAthority上找到了一个出色的演示,该演示发布于2018年3月20日,涉及在Nougat和Oreo上实现快捷方式的捷径,对我来说这一切都融为一体。 请参见my reply,以获取与我的代码非常相似的问题。
我在github的主页上放置了一个简单的应用程序,该应用程序除了为其自身安装了快捷方式外,什么也不做。它适用于Android 8之前和之后的版本。Android8之前的版本会在创建固定的快捷方式之后使用sendBroadcast方法。