2016-07-20 2 views
0

Я пробовал, как сделать уведомление для моего приложения, открыть другое приложение, такое как почтовый ящик. Я только видел, как открыть конкретную деятельность и не знаю, можно ли открыть целое приложение.Android: Как я могу открыть другое приложение с моим уведомлением?

+0

Я думаю, что это возможно .. Вам просто нужно настроить намерение правильно ... Но я никогда не пытался .. так что я не могу подтвердить – W0rmH0le

+0

В Android нет «всего приложения». Это похоже на вопрос о том, как ссылаться на «весь веб-сайт» с вашей веб-страницы. Вы можете запустить активацию приложения для приложения, учитывая, что вы знаете его идентификатор приложения («имя пакета») для использования с «PackageManager». Поскольку не все используют Google Inbox, вам необходимо каким-то образом разрешить пользователям решать, какое приложение вы должны открыть. – CommonsWare

ответ

1

Да. Возможно. Вам просто нужно правильно настроить свои намерения.

ВНИМАНИЕ

Конечный пользователь не может быть установлено приложение, которое вы хотите .. Таким образом, вы должны реализовать методы управления, которые ...

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

пример

Я создал пример ниже для WhatsApp. В качестве ссылки я использовал this question.

Notification.Builder notiBuilder = new Notification.Builder(this); 
Intent intent = null; 

/* 
    START 
    Configure your intent here. 
    Example below opens the whatspp.. I got this example from https://stackoverflow.com/questions/15462874/sending-message-through-whatsapp/15931345#15931345 
    You must update it to open the app that you want. 

    If the app is not found, intent is null and then, click in notification won't do anything 
*/ 
PackageManager pm=getPackageManager(); 
try { 
    PackageInfo info = pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA); 
    intent = new Intent(Intent.ACTION_SEND); 
    intent.setPackage("com.whatsapp"); 
    intent.setType("text/plain"); 
} catch (PackageManager.NameNotFoundException e) { 
    // Package not found 
    intent = null; 
    e.printStackTrace(); 
} 
/* END */ 

if(intent != null) { 
    PendingIntent clickPendingIntent = PendingIntent.getActivity(
      this, 
      0, 
      intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 
    notiBuilder.setContentTitle("Title") 
      .setSmallIcon(R.drawable.common_google_signin_btn_icon_light) 
      .setContentText("Message") 
      .setContentIntent(clickPendingIntent) 
      .setLights(Color.BLUE, 3000, 3000); 
} else { 
    notiBuilder.setContentTitle("Title") 
      .setSmallIcon(R.drawable.common_google_signin_btn_icon_light) 
      .setContentText("Message") 
      .setLights(Color.BLUE, 3000, 3000); 
} 

Notification mNotificationBar = notiBuilder.build(); 
mNotificationBar.flags |= Notification.DEFAULT_SOUND; 
mNotificationBar.flags |= Notification.FLAG_SHOW_LIGHTS; 
mNotificationBar.flags |= Notification.FLAG_AUTO_CANCEL; 

NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Service.NOTIFICATION_SERVICE); 
mNotificationManager.notify(0, mNotificationBar); 

Открыть Dialer

Просто настройте цель, как показано ниже:

intent = new Intent(Intent.ACTION_DIAL); 
intent.setData(Uri.parse("tel:")); 
+0

Прохладно, это очень помогло! – TCTBO

Смежные вопросы