05 декабря 2010

Android tricks

Не так давно возникла потребность узнать, запущено ли приложение в прямом смысле этого слова, а не в том, как его понимает андроид. То есть был ли это запуск из лончера, иконки на рабочем столе, нотификации после установки или же просто приложение было показано при переходе к нему по стеку истории. Определяет это вот такой код, помещённый в onCreate() главной Activity:

protected boolean isLaunch()
{
Intent i = getIntent();
return i != null &&
((i.getCategories()!= null && i.getCategories().contains(Intent.CATEGORY_LAUNCHER)) || // from launcher
Intent.ACTION_MAIN.equalsIgnoreCase(i.getAction())) && // or first launch from notification panel
getLastNonConfigurationInstance() == null; // orientation change
}


Другой небольшой трюк - как дать возможность послать что-то в Gmail, SMS, Twitter и пр. Пользователи Андроида знают это меню "Отправить". А отправить вот как:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "title");
sendIntent.putExtra(Intent.EXTRA_TEXT, "description");
Intent intent = Intent.createChooser(sendIntent,
getString(R.string.AndroidProgramItemActionShare));
startActivity(intent);

Все программы, которые могут принять текст, будут показаны в этом списке.

Комментариев нет: