7.1.1 - Проверьте, не использовался ли SHORTCUT
Итак, в основном я хочу достичь: узнать, когда я получаю доступ к действию через ярлык, а когда нет. Я использую статические ярлыки.
Перебрал документацию но не повезло. Может быть, это больше связано с намерением, которое является частью программирования Android, которым я не владею.
Благодарю.
3 ответа
Используйте строку действия, уникальную для ярлыка приложения. Обратите внимание, что строка действия не обязательно должна быть на <intent-filter>
для <activity>
в манифесте - <activity>
не нужно <intent-filter>
вообще, AFAIK.
Вы должны иметь android:action
атрибут в <intent>
элемент для ярлыка приложения в любом случае (по необъяснимым причинам). Итак, установите это в какую-то строку. Затем в своей деятельности вы можете использовать getIntent()
чтобы увидеть Intent
это использовалось, чтобы создать действие и видеть, есть ли у него эта конкретная строка действия. Если это так, то действие было создано с помощью ярлыка приложения.
Вы можете добавить к намерению android:action="android.intent.action.VIEW" следующее для каждого ярлыка:
<intent
<extra
android:name="key"
android:value="value" />
</intent>
и затем в своей деятельности проверьте это так:
Intent intentaction = getIntent();
if (intentaction.hasExtra("key")) {
//Do something
}
Официальная документация должна дать вам несколько советов, хотя она не дает прямого ответа на ваш вопрос. https://developer.android.com/guide/topics/ui/shortcuts.html
Другой простой подход может быть при работе с динамическими ярлыками, вы можете добавить какой-либо флаг в намерение и проверить этот флаг в целевом действии, тогда вы можете быть уверены, что действие было вызвано из ярлыка.
Надеюсь, поможет...