2013-04-21 2 views
2

Мое приложение имеет возможность создавать ярлыки на главном экране.Создать ярлык, который отправляет широковещательную рассылку

создать ярлык, как это:

Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, 
new Intent(ShortcutCreateActivity.this, ShortcutCreateActivity.class).putExtra(EXTRA_PROFILE_ID, profileId).putExtra(EXTRA_PROFILE_ACTION, item)); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, profileTitle); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap); 

Это работает, как ожидалось ..., когда пользователь нажимает на ярлык, то ShortcutCreateActivity запускается и я делаю то, что мне нужно.

Однако! Я хотел бы избежать необходимости открывать мероприятие. Вместо этого я хочу создать ярлык, который отправит широковещательную передачу.

Я попытался заменить намерения с:

intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, 
    new Intent(INTENT_ACTION_THAT_I_WANT) 

Но когда я нажимаю на ярлык, он показывает Тост «App не установлен».

Возможно ли создать ярлык на главном экране, который отправляет широковещательную передачу вместо запуска Activity?

(Начало деятельности и быстрая доработка - это не вариант).

Спасибо!

ответ

6

Возможно ли создать ярлык на главном экране, который отправляет широковещательную передачу вместо запуска Activity?

Строго говоря, нет.

Однако, вы можете иметь его указать на деятельность, которая устанавливается с Theme.NoDisplay, где в данный вид деятельности onCreate() вы отправляете трансляцию и позвонить finish() без вызова setContentView(). Визуально это неотличимо от того, как ярлык посылает сам эфир.