7.1.1 - 检查是否使用了快捷方式

7.1.1 - Check if SHORTCUT was used

所以,基本上我想要实现的是:了解我何时通过快捷方式访问 activity 以及何时不访问。我正在使用静态快捷方式。

浏览了文档,但没有成功。也许它更多地与意图有关,这是 Android 我不掌握的编程的一部分。

谢谢。

使用应用程序快捷方式独有的操作字符串。请注意,对于清单中的 <activity>,操作字符串不需要位于 <intent-filter> 上 — <activity> 根本不需要 <intent-filter>,AFAIK。

您必须在应用程序快捷方式的 <intent> 元素中有一个 android:action 属性(出于莫名其妙的原因)。因此,将其设置为某个字符串。然后,在您的 activity 中,您可以使用 getIntent() 查看用于创建 activity 的 Intent 并查看它是否具有此特定操作字符串。如果是,则 activity 是通过应用程序快捷方式创建的。

官方文档应该会给你一些提示,虽然它没有直接回答你的问题。 https://developer.android.com/guide/topics/ui/shortcuts.html#tracking-usage

另一种简单的方法可能是在处理动态快捷方式时,您可以向意图添加某种标志并在目标 activity 中检查该标志,然后您可以确定 activity 从快捷方式调用。

希望对您有所帮助...

您可以将此添加到每个快捷方式的 android:action="android.intent.action.VIEW" 意图中:

<intent
   <extra
         android:name="key"
         android:value="value" />
</intent>

然后在您的 activity 中这样检查:

Intent intentaction = getIntent();


if (intentaction.hasExtra("key")) {

        //Do something 
    }