Hallo,
folgende Situation:
- ich benutze Android-Studio mit Emulator..
- die HauptActivity, ...MAIN, ...LAUNCHER ist zur Einstellung der Parameter.
- es ist eine zweite Activity enthalten, welche ein "OK-Dialog" darstellt.
- in der AndroidManifest.xml ist ein BroadcastReceiver registriert, er reagiert auf einkommende SMS und wertet diese aus.
Der BroadcastReceiver läuft und reagiert richtig. Passt der SMS-Text mit dem eingestelltem Kennwort überein, soll die zweite Activity angezeigt werden.
Testweise spiele ich auch ein Ton ab. Der Ton ist immer zu hören.
Auch, wie erwartet nach einem Neustart des Handys.
Die "zweite Activity" wird nur angezeigt, so lange die HauptActivity angezeigt wird.
Ist die HauptActivity aktiv, wird die 2. korrekt angezeigt, ist sie im Hintergrund oder beendet, wird die zweite Activity nicht angezeigt.
Ausschnitt aus der AndroidManifest.XML
<receiver android:name=".SMSReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity android:name=".SecondActivity" android:launchMode="singleTop" />
<activity android:name=".MainActivity" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Alles anzeigen
Ausschnitt aus dem BroadcastReceiver:
public void onReceive(Context context, Intent intent) {
... Auswertung der SMS ...
// Start der zweiten Activity
Intent showDialog = new Intent();
showDialog.setClassName(SecondActivity.class.getPackage().getName(),SecondActivity.class.getName());
showDialog.setAction(Intent.ACTION_VIEW);
showDialog.addCategory(Intent.CATEGORY_LAUNCHER);
showDialog.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
context.startActivity(showDialog);
...
}
Alles anzeigen
a) Wieso nicht ?
b) Wie bekomme ich die zweite Activity aus dem Receiver heraus angezeigt?
beste Grüße Mario