2014-07-22 12 views
25

Ich versuche eine App zu erstellen, die einen Toast anzeigt, wenn das Bluetooth des Geräts aktiviert wird. Ich möchte das auch tun, wenn meine App nicht läuft. Also sollte ich einen Broadcast-Empfänger verwenden, einige Berechtigungen, einen Intent-Filter zum Android-Manifest hinzufügen und eine Java-Klasse erstellen, aber ich kenne die Details nicht.Wie erkennt man die Bluetooth-Statusänderung mit einem Rundfunkempfänger?

Was soll ich tun? Welche Berechtigungen sollte ich verwenden?

Antwort

64

Soweit Berechtigungen gehen, um die Statusänderung von Bluetooth zu erkennen, müssen Sie dies zu Ihrem AndroidManifest.xml hinzufügen.

<uses-permission android:name="android.permission.BLUETOOTH" /> 

Ein Beispiel Empfänger würde wie folgt aussehen, können Sie diesen Code hinzufügen, in dem Sie die Sendung behandeln möchten, beispielsweise eine Aktivität:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
      public void onReceive (Context context, Intent intent) { 
       String action = intent.getAction(); 

       if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { 
        if(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) 
    == BluetoothAdapter.STATE_OFF) 
    // Bluetooth is disconnected, do handling here 
} 

} 

     }; 

den Empfänger zu verwenden, müssen Sie es registrieren . Was können Sie tun, wie folgt. Ich registriere den Empfänger in meiner Haupttätigkeit.

registerReceiver(this, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)); 

Sie können auch entscheiden, alles zu Ihrer AndroidManifest.xml hinzufügen. Auf diese Weise können Sie eine spezielle Klasse für den Empfänger erstellen und diese dort behandeln. Keine Notwendigkeit, den Empfänger zu registrieren, nur die Klasse machen und den Code unten auf den AndroidManifest

<receiver 
     android:name=".packagename.NameOfBroadcastReceiverClass" 
     android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/> 
    </intent-filter> 
</receiver> 
+0

wo sollte ich den 2. und 3. Code hinzufügen? –

+0

Ich weiß nur, um eine Klasse von Rundfunkempfänger zu machen –

+0

Ich habe meinen Beitrag bearbeitet – paNji

21

Sie folgende Berechtigung nehmen hinzuzufügen.

<uses-permission android:name="android.permission.BLUETOOTH" /> 

und Sie müssen dies als Ihre Absicht Filter in Empfänger-Tag schreiben.

<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />