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?
Antwort
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:"));
Cool, das hat mir sehr geholfen! – TCTBO
Hier finden Sie die offiziellen Dokumente zum Erstellen einer impliziten Absicht.
https://developer.android.com/training/basics/intents/sending.html
Ist das, was Sie gemeint?
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
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