2017-05-21 6 views
0

Wie kann ich die Anwendung in meinem Android-Handy starten, wenn ein Bluetooth-Gerät angeschlossen ist?Starten Sie die Anwendung, wenn das Bluetooth-Gerät angeschlossen ist

Ich versuche, dies mit Broadcast-Empfänger zu tun, aber ich habe ein Problem ... Wenn ich die Aktivität beenden (Anwendung beenden), muss der Broadcast-Empfänger nicht registriert sein ... so gibt es keine Möglichkeit zu hören verbunden Geräte ...

Wie man diesen Rundfunkempfänger am Leben erhält, nachdem die Anwendung beendet ist?

Dank

EDIT:

public class AutostartReceiver extends BroadcastReceiver 
{ 
    /** 
    * @param context Context 
    * @param intent Intent 
    * @return void 
    */ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 

     String action = intent.getAction(); 

     switch (action) 
     { 
      case BluetoothDevice.ACTION_ACL_CONNECTED: 
       Log.v("PAREK", "cnn"); 
       break; 

      case BluetoothDevice.ACTION_ACL_DISCONNECTED: 
       Log.v("PAREK", "dnn"); 
       break; 
     } 
    } 
} 

ich auch mit nur manifest Initialisierung tryied

<receiver 
      android:name=".Model.Tools.AutostartReceiver"> 
      <intent-filter> 
       <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED" /> 
       <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED" /> 
       <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED" /> 
      </intent-filter> 
     </receiver> 

EDIT2:

Warum? Weil ich möchte, dass meine App nur im Auto funktioniert ... wenn die Anwendung also mit der Freisprecheinrichtung des Autos verbunden ist, wird die Anwendung gestartet ... und nach 5 Minuten Trennung wird die App "beendet".

Antwort

1

Sie werden den Broadcast-Empfänger in einer Service anstelle Ihrer Aktivität registrieren möchten und START_STICKY in der onStartCommand zurückgeben, damit es auch nach dem Abbruch der Aktivität weiterläuft. Beispiel:

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    return START_STICKY; 
} 
+0

Es funktioniert nicht, wenn ich die Tätigkeit beenden, der Rundfunkempfänger automatisch tut nichts ... IDK, warum (aber GPS-Hörer noch in Betrieb) ... @Dillon Burton –

+0

Haben Sie die Erlaubnis 'hinzugefügt < uses-permission android: name = "android.permission.BLUETOOTH" /> 'und' '? –

+0

Ist es auch, dass der Broadcast-Empfänger nicht feuert oder dass es in Ihrer switch-Anweisung keinen Fall trifft? –

Verwandte Themen