2016-06-03 10 views
0

Die Erkennung und Paarung in den Android Bluetooth Documentation beschrieben ist recht komplex. Auch eine separate Genehmigung ist dafür erforderlich: BLUETOOTH_ADMIN.Gibt es ein System Aktion zu entdecken und Paar Bluetooth-Geräte in Android?

Ich frage mich, ob es ein System Aktion ist, dass ich nur nennen, dass die Benutzeroberfläche, Rückkehr wird handhaben, und die will ich nur ein bereits gekoppeltes Gerät wählen. Oder muss ich all diese UI selbst implementieren?

+0

Check diese Antwort: http://stackoverflow.com/a/23102124/1549219 – David

Antwort

0

, wenn Sie die Liste der gekoppelten Bluetooth-Geräte erhalten möchten Sie diesen Code verwenden können

public class DeviceList extends ActionBarActivity 
{ 
//widgets 
    Button btnPaired; 
    ListView devicelist; 
//Bluetooth 
    private BluetoothAdapter myBluetooth = null; 
    private Set<BluetoothDevice> pairedDevices; 
    public static String EXTRA_ADDRESS = "device_address"; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_device_list); 

    //Calling widgets 
    btnPaired = (Button)findViewById(R.id.button); 
    devicelist = (ListView)findViewById(R.id.listView); 

    //if the device has bluetooth 
    myBluetooth = BluetoothAdapter.getDefaultAdapter(); 

    if(myBluetooth == null) 
    { 
     //Show a mensag. that the device has no bluetooth adapter 
     Toast.makeText(getApplicationContext(), "Bluetooth Device Not Available", Toast.LENGTH_LONG).show(); 

     //finish apk 
     finish(); 
    } 
    else if(!myBluetooth.isEnabled()) 
    { 
      //Ask to the user turn the bluetooth on 
      Intent turnBTon = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
      startActivityForResult(turnBTon,1); 
    } 

    btnPaired.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
      pairedDevicesList(); 
     } 
    }); 

} 

private void pairedDevicesList() 
{ 
    pairedDevices = myBluetooth.getBondedDevices(); 
    ArrayList list = new ArrayList(); 

    if (pairedDevices.size()>0) 
    { 
     for(BluetoothDevice bt : pairedDevices) 
     { 
      list.add(bt.getName() + "\n" + bt.getAddress()); //Get the device's name and the address 
     } 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext(), "No Paired Bluetooth Devices Found.", Toast.LENGTH_LONG).show(); 
    } 

    final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list); 
    devicelist.setAdapter(adapter); 
    devicelist.setOnItemClickListener(myListClickListener); //Method called when the device from the list is clicked 

} 

private AdapterView.OnItemClickListener myListClickListener = new AdapterView.OnItemClickListener() 
{ 
    public void onItemClick (AdapterView<?> av, View v, int arg2, long arg3) 
    { 
     // Get the device MAC address, the last 17 chars in the View 
     String info = ((TextView) v).getText().toString(); 
     String address = info.substring(info.length() - 17); 

     // Make an intent to start next activity. 
     Intent i = new Intent(DeviceList.this, NextActivity.class); 

     //Change the activity. 
     i.putExtra(EXTRA_ADDRESS, address); //this will be received at NextActivity 
     startActivity(i); 
    } 
}; 
} 
+0

Dies ist die Wahl nur eine von bereits gepaarte Geräte. Ich meinte einen Dialog, um nach Geräten zu suchen und das Pairing durchzuführen. – Oliv