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
}
所以,基本上我想要实现的是:了解我何时通过快捷方式访问 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
}