Hallo mal wieder
Ich möchte per App Verbindungen mit Bluetooth herstellen, dazu muss ich aber zu erst Geräte in der Nähe finden. Über das System an sich, finde ich mein Testgerät(Laptop) wunderbar, aber meine App findet irgendwie gar nichts. Für das Discovern hab ich folgenden Code nach dem offiziellen Tutorial benutzt. Was mach ich falsch?
public static void sucheHosts(MainActivity a, final ArrayList<BluetoothDevice> devices) {
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
Log.i("BTVerbindung", "Kein Bluetooth");
}
if (!bluetoothAdapter.isEnabled()) {
bluetoothAdapter.enable();
}
mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
} else if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.i("BTVerbindung", "Found device " + device.getName());
}
}
};
if (bluetoothAdapter.isDiscovering())
bluetoothAdapter.cancelDiscovery();
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
a.registerReceiver(mReceiver, filter);
bluetoothAdapter.startDiscovery();
}
BluetoothChatHandler.sucheHosts(this, gefundeneGeräte);
new Thread(new Runnable(){
@Override
public void run() {
while(gefundeneGeräte.size() <= 0){}
if(gefundeneGeräte.size() > 0){
ListView liste = (ListView) findViewById(R.id.listView);
for(final BluetoothDevice d : gefundeneGeräte){
Button textview = new Button(liste.getContext());
textview.setText(d.getName()+" "+d.getAddress());
textview.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
BluetoothChatHandler.connectToHost(d);
}
});
liste.addFooterView(textview);
}
setContentView(R.layout.verbinden);
}else{
Log.i("BTVerbindung", "Keine geräte gefunden");
}
}
}).start();