Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
#1

Intent для запуска приложения по имени пакета - Программирование Android

16.09.2016, 21:37. Просмотров 229. Ответов 0
Метки нет (Все метки)

Первичная задача сформировать нотификацию, по нажатии на которую запустится приложение из заданным именем пакета.
Java
1
2
3
4
5
6
7
        Intent intent = new Intent().
                setPackage(getPackageName()).
                setAction("android.intent.action.MAIN").
                addCategory("android.intent.category.LAUNCHER");
      
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);
Делаю так. Дальше этот интент передаю в NotificationCompat.Builder
Java
1
2
3
4
5
6
7
   NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
               .setSmallIcon(icon)
               .setContentTitle("FCM Message")
               .setContentText(messageBody)
               .setAutoCancel(true)
               .setSound(defaultSoundUri)
               .setContentIntent(pendingIntent);
И соответственно вызов
Java
1
2
3
4
 NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 
       notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
Проблема в том, что при данном интенте не срабатывает вызов приложения по нажатию нотификакации. С указанием конкретного класса работает
Java
1
2
3
4
5
  Intent intent = new Intent().
                setPackage(getPackageName()).
                setAction("android.intent.action.MAIN").
                addCategory("android.intent.category.LAUNCHER").
                setClassName(getPackageName(), MainActivity.class);
Вопрос - как заставить запускаться приложения, зная только пакет приложения с главной активити?

Добавлено через 1 час 38 минут
нашел такое решение
Java
1
 Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2016, 21:37     Intent для запуска приложения по имени пакета
Посмотрите здесь:
Не вызывается активность используя разный подход запуска Intent Android
Android Иконка запуска для приложения Андроид
Android Экспорт приложения для запуска на устройстве
Android Starting: Intent { act=android.intent.action.MAIN. и пустой белый экран
Добавить папку в середину имени пакета Android
Несколько фонов для приложения. Как загружать каждый по его номеру в имени файла Android
Eclipse, как изменить домен по умолчанию в имени пакета при создании проекта? Android
Разное имя пакета и приложения Android
Android Имя пакета приложения находящегося на переднем плане
Android Как обрабатывать ошибки, когда трассировка стека не имеет пакета приложения?
Как отправить данные intent для картинок? Android
Android Анимация запуска приложения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru