Ich habe ein Problem, das ich nicht lösen kann, der Broadcast-Empfänger meiner Anwendung läuft weiter, wenn ich meine Anwendung verlassen. Ich muss die Anwendung zwangsweise manuell stoppen, während ich geschlossen bin. Vielen Dank für Ihre Hilfe. Hier ist mein Manifest, und mein Empfänger:Broadcast Empfänger weiter nach der Anwendung verlassen
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.locateit.antholife.locateit">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<application
android:allowBackup="true"
android:icon="@mipmap/locate"
android:label="@string/app_nameprincipal"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Main2Activity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".Changelog"
android:label="@string/title_activity_changelog"
android:theme="@style/AppTheme.NoActionBar" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBfmF3WWxsPhufZR5keiDNRy-33hJI1rvM" />
<activity
android:name=".lequipe"
android:label="@string/nomequipe" />
<activity
android:name=".Setting"
android:label="@string/title_activity_setting" />
<activity android:name=".MDPinterne"
android:label="@string/title_activity_mdpsecure" />
<activity android:name=".Bluetooth"
android:label="@string/title_activity_bluetooth" />
<receiver android:name=".MyReceiver">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity android:name=".Smsconnection"
android:label="@string/title_activity_gsm" >
</activity>
</application>
und myreceiver:
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
public int lock = 0;
@Override
public void onReceive(Context context, Intent intent) {
Bundle extra = intent.getExtras();
if (extra != null) {
Object[] pdus = (Object[]) extra.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
if (messages.length > -1) {
for (int i = 0; i < messages.length; i++) {
String messageBody = messages[i].getMessageBody();
String phoneNumber = messages[i].getDisplayOriginatingAddress();
Toast.makeText(context, "Expéditeur:" + "\n" + phoneNumber, Toast.LENGTH_LONG).show();
Toast.makeText(context, "Message : " + "\n" + messageBody, Toast.LENGTH_LONG).show();
if (messageBody.equals("CS")) {
lock = 1;
SharedPreferences sharedPreferences = context.getSharedPreferences("appSharedPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("lockphone", phoneNumber);
editor.putInt("locksecurity", lock);
editor.commit();
Toast.makeText(context, "Association réussie !", Toast.LENGTH_LONG).show();
Toast.makeText(context, "L'option Connexion GSM est maintenant désactivée.", Toast.LENGTH_LONG).show();
}
/** else {
Toast.makeText(context, "Echec de l'association !", Toast.LENGTH_LONG).show();
Toast.makeText(context, "Merci de renseigner un numéro correct", Toast.LENGTH_LONG).show();
} **/
}
}
}
}
}
Ja ist es, dass ich will, dass es auf der ganzen Tätigkeit der Anwendung arbeitet, aber ich würde nur aufhören, wenn ich die Anwendung verlasse. Bitte ich fange an, ich verstehe das auch nicht. – Antholife
@Antholife: Ich weiß nicht, was "die Anwendung verlassen" bedeutet in Fachsprache. Wenn es sich um eine Anwendung mit einer einzigen Aktivität handelt, könnten Sie 'registerReceiver()' beispielsweise in 'onStart()' und 'unregisterReceiver()' in 'onStop()' aufrufen. – CommonsWare
Wenn die Anwendung in den letzten Apps gescannt wird :) Ja, aber ich brauche mehr Details, ich bin ein Anfänger, danke :) – Antholife