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
Quellcode
- <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>
Ausschnitt aus dem BroadcastReceiver:
Quellcode
- 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);
- ...
- }
b) Wie bekomme ich die zweite Activity aus dem Receiver heraus angezeigt?
beste Grüße Mario
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von MarioR ()