2013-06-12 8 views
5

Ich versuche, die verfügbaren Bluetooth-Geräte zu finden.Android-Suche nach Bluetooth-Geräten

Dies ist mein OnClickListener, der aufgerufen wird, wenn der Benutzer versucht, nach verfügbaren Geräten zu suchen.

View.OnClickListener OnSearchDevices = new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      //Toast.makeText(context, "Search Devices", Toast.LENGTH_LONG).show(); 
      Log.d("Discovery", "Started"); 
      listOfDevices.clear(); 
      label.setText("Searching Available Devices..."); 
      label.setEnabled(false); 
     } 
    }; 

Ich habe auch einen BroadcastReceiver registriert.

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_FOUND.equals(action)) { 
       // Get the BluetoothDevice object from the Intent 
       BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
       Log.d("DeviceList" , device.getName() + "\n" + device.getAddress()); 
       MyBluetoothDevice tempDevice = new MyBluetoothDevice(); 
       tempDevice.setDeviceAddress(device.getAddress()); 
       tempDevice.setDeviceName(device.getName()); 
       listOfDevices.add(tempDevice); 
       mListAdapter.notifyDataSetChanged(); 
       // discovery is finished 
      } 
      else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { 

       Log.d("Discovery","Finished"); 
       label.setEnabled(true); 
       if(listOfDevices.size() == 0) 
       { 
        label.setText("No Devices Available!"); 
        label.setTextColor(Color.parseColor("#FF0000")); 

       } 
       else 
       { 
        label.setText("Available Devices"); 
       } 

      } 
     } 
    }; 

Aber nichts passiert. Es zeigt nichts. Bitte helfen Sie.

Antwort

5

Sieht aus, als würden Sie den Anruf zu mBluetoothAdapter.startDiscovery() verpassen.

Das würde erklären, warum Sie keine Ergebnisse erhalten, weil der Adapter nicht einmal nach den Geräten sucht.

Ihr Code sieht mir ansonsten gut.

+0

Wo füge ich das hinzu? – user2477164

+0

Innerhalb 'onClick()' – Swayam

+0

Super! Arbeitete wie Magie! Sie rocken Mann! : D – user2477164

Verwandte Themen