通过服务处理多个蓝牙连接

时间:2011-12-01 10:49:43

标签: android bluetooth

我正在开发一个应用程序,其中Android手机是蓝牙服务器,接受蓝牙连接,然后使用它们向其他手机发送和接收数据。

我的想法是使用BluetoothAdapter并通过启动服务来对ACTION_FOUND意图作出反应。但是,我不知道如何保持与以这种方式创建的服务的连接。我将以下内容放入AndroidManifest文件中:

<service
      android:label="@string/bluetooth_connection_activity"
      android:name=".BluetoothConnection" >
      <intent-filter>
          <action android:name="android.bluetooth.device.action.FOUND" />  
      </intent-filter>   
  </service>

这是正确的方法吗?

我的假设是正确的,到现在为止,每次找到设备时,都会创建一个新服务吗?如果是,我如何保持与此服务的连接,以便我可以使用蓝牙连接?

如果您认为我这样做的方式完全错误,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以在BroadcastReceiver中使用ACTION_FOUND来发现BT设备。

mBT = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBT.getBoundedDevices();
if (pairedDevices.size()>0) {
    for (BluetoothDevice device : pairedDevices) {
        device.getName();
        device.getAddress();
    }
}

OR:

创建BroadcastReceiver和mBT.startDiscovery(); 看到 1)“Android in Action”第367页 2)“Android SDK”http://developer.android.com/guide/topics/wireless/bluetooth.html 3)在Android-SDK中http://developer.android.com/resources/samples/BluetoothChat/index.html

示例BluetoothChat