2014-01-12 14 views
5

Grundsätzlich versuche ich 2 Dinge hier, Im Versuch, einen Toast zu starten, wenn mein Bluetooth-Gerät mit einem bestimmten Gerät verbunden ist (so müssen überprüfen, ob das der bestimmte Bluetooth-Name ist), wenn das das bestimmte Gerät ist, dann möchte ich zeigen ein Toast, wenn Sie mit diesem bestimmten Bluetooth-Gerät verbunden sind. Ich möchte auch einen Toast zeigen, wenn mein Bluetooth von diesem bestimmten Bluetooth-Gerät getrennt ist. Hier ist mein Code: in manifest.xmlAndroid: Wie finde ich den Namen des verbundenen Bluetooth-Geräts?

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

<receiver android:name=".MyBluetoothReceiver" > 
    <intent-filter> 
    <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> 
    <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> 
    <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />   
</intent-filter> 
</receiver> 

Klasse Code:

public class MyBluetoothReceiver erweitert BroadcastReceiver {

@Override 
public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, "RECEIVER CALLED!!", Toast.LENGTH_LONG).show(); 


    if(intent.getAction().equals(
     "android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED")){ 

     // code for Bluetooth connect 

     Toast.makeText(context, "CONNECTED!!", Toast.LENGTH_LONG).show(); 
    } 

    if(intent.getAction().equals(
     "android.bluetooth.device.action.ACL_DISCONNECTED")){ 

     //code for Bluetooth disconnect; 
     Toast.makeText(getApplicationContext(),"DISCONNECTED",Toast.LENGTH_LONG).show(); 
    } 
} 
} 

In meinem Code im Empfänger genannt Toast richtig und auch der Toast immer für disconnected funktioniert auch aber toast von connected funktioniert nie.

Bitte lassen Sie mich wissen, warum CONNECTED Toast nicht funktioniert und wie dieser Code Arbeit machen, wenn zu einem bestimmten Gerät verbunden (Ich will nicht diesen Toast Show für alle Geräte)

Antwort

6

ändern Ihr Broadcast-Empfänger an:

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

     // When discovery finds a device 
     if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { 
      // Get the BluetoothDevice object from the Intent 
      BluetoothDevice device = intent 
        .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 

          //you can get name by device.getName() 

     } else if (BluetoothAdapter.ACL_DISCONNECTED 
       .equals(action)) { 

     } 
    } 
}; 
+0

THanks Ich werde dies überprüfen und antworten zurück .. –

+0

Danke Mann seine Arbeit :) –

Verwandte Themen