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

Другой простой подход может быть при работе с динамическими ярлыками, вы можете добавить какой-либо флаг в намерение и проверить этот флаг в целевом действии, тогда вы можете быть уверены, что действие было вызвано из ярлыка.

Надеюсь, поможет...

Другие вопросы по тегам