2016-07-20 4 views
0

Ich habe versucht, eine Benachrichtigung für meine App zu machen, öffnen Sie eine andere Anwendung wie Posteingang. Ich habe nur gesehen, wie man eine bestimmte Aktivität öffnet und weiß nicht, ob es möglich ist, eine ganze Anwendung zu öffnen.Android: Wie kann ich mit meiner Benachrichtigung eine andere App öffnen?

+0

Ich denke, es möglich ist .. Sie müssen nur richtig die Absicht konfigurieren ... Aber ich habe nie versucht, .. so kann ich nicht bestätigen – W0rmH0le

+0

Es gibt keine "gesamte Anwendung" in Android. Das ist vergleichbar mit der Frage, wie Sie von Ihrer Webseite auf eine "gesamte Website" verlinken können. Sie können eine Startaktivität für die Anwendung starten, vorausgesetzt, Sie kennen ihre Anwendungs-ID ("Paketname") für die Verwendung mit 'PackageManager'. Da nicht jeder Google Inbox verwendet, benötigen Sie eine Möglichkeit, Benutzern die Entscheidung zu überlassen, welche Anwendung Sie öffnen sollten. – CommonsWare

Antwort

1

Ja. Es ist möglich. Sie müssen nur Ihre Absicht richtig konfigurieren.

VORSICHT

Endbenutzer die App nicht installiert haben, die Sie wollen .. Also, müssen Sie Methoden implementieren, dass zur Steuerung ...

Aber trotzdem ist es möglich, eine öffnen andere App von Ihrer eigenen Mitteilung

Beispiel

ich habe folgende Beispiel für whatsapp. Ich habe this question als Referenz verwendet.

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); 

öffnen Dialer

einfach konfigurieren die Absicht wie folgt:

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

Cool, das hat mir sehr geholfen! – TCTBO

Verwandte Themen