2012-08-25 144 views
0

我无法弄清楚如何通过这个代码获得名单上我的绑定设备:Android的蓝牙获取绑定设备

bt_scan.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); 
      // If there are paired devices 
      if (pairedDevices.size() > 0) { 
       // Loop through paired devices 
       for (BluetoothDevice device : pairedDevices) { 
        // Add the name and address to an array adapter to show in a ListView 
        mArrayAdapter.add(device.getName() + "\n" + device.getAddress()); 
       } 
      } 

                 }});} 

我不知道如何得到它在文本视图或列表如果可能的话,查看一个相同的布局,甚至在另一个布局。 我想连接一个找到的设备,但这是一个完整的其他故事。

(这里是我完整的代码,如果有帮助:http://pastie.org/4582924

非常感谢!

+0

如果只想将arrayAdapter调查结果显示到ListView中,只需将arrayAdapter设置为listView控件即可。我做了一个关于通过适配器向列表视图添加项目的简单视频,http://www.youtube.com/watch?v = 61WvMzaihwU&feature = plcp,您可以跳到第4分钟或更少。 – soynerdito

回答

0

是的,我同意Vishwa,蓝牙聊天应用程序是非常有帮助的,我都做相同的(像你这样)样的发展,这里是我的代码,

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView android:id="@+id/title_new_devices" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:background="#666" android:textColor="#fff" 
     android:paddingLeft="5dp" /> 
    <ListView android:id="@+id/new_devices" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

活性类

private static BluetoothAdapter mBtAdapter; 
private static ArrayAdapter<String> mNewDevicesArrayAdapter; 

private static ArrayList<String> nameList = null; 
private static ArrayList<String> macList = null; 

private static ListView newDevicesListView = null; 



     // Register for broadcasts when a device is discovered 
     IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
     this.registerReceiver(mReceiver, filter); 

     // Register for broadcasts when discovery has finished 
     filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); 
     this.registerReceiver(mReceiver, filter); 


     filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED); 
     this.registerReceiver(mReceiver, filter); 

     // Get the local Bluetooth adapter 
     mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 

广播接收器类

private final BroadcastReceiver mReceiver = new BroadcastReceiver() 
    { 
     @Override 
     public void onReceive(Context context, Intent intent) 
     { 
      try 
      { 
       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); 

        String deviceName = device.getName(); 
        String deviceAddress = device.getAddress(); 

        if (!nameList.contains(deviceName.trim() + " " + deviceAddress.trim())) 
        { 
         nameList.add(deviceName.trim() + " " + deviceAddress.trim()); 
         macList.add(deviceAddress.trim() + "&" + ConstantCodes.TIME + ConstantCodes.EQUALS + DateUtility.getDateTime()); 
        } 

//     System.out.println (device.getName()); 
        mNewDevicesArrayAdapter.notifyDataSetChanged(); 
       } 
       else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) 
       { 
        mNewDevicesArrayAdapter.notifyDataSetChanged(); 
       } 
       else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) 
       { 
//     nameList.clear(); 
       } 
      } 
      catch (Exception e) 
      { 
       System.out.println ("Broadcast Error : " + e.toString()); 
      } 
     } 
    }; 

代码将搜索活动的蓝牙设备并将其显示在listView中。

0

查看Android SDK中提供的蓝牙聊天应用程序,它提供了一种干净的方式来显示您当前与之配对的手机。

它还提供了一个BluetoothChatService类,您可以轻松地适应连接找到的设备。