Android 单击即可连接到特定的蓝牙设备

Android 单击即可连接到特定的蓝牙设备,android,android-bluetooth,Android,Android Bluetooth,我正在尝试使用我的Android应用程序连接到特定设备,直到现在,我所能做的是让配对的项目执行以下操作: BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Set < BluetoothDevice > pairedDevices = bluetoothAdapter.getBondedDevices(); if (pairedDevices.size() > 0) { f

我正在尝试使用我的Android应用程序连接到特定设备,直到现在,我所能做的是让配对的项目执行以下操作:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set < BluetoothDevice > pairedDevices = bluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
    for (BluetoothDevice device: pairedDevices) {
        mDeviceName.add(device.getName());
        mDeviceMAC.add(device.getAddress());

    }
}
bluetoothClass.setDeviceName(mDeviceName);
bluetoothClass.setDeviceMac(mDeviceMAC);
BluetoothAdapter BluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
设置pairedDevices=bluetoothAdapter.getBondedDevices();
如果(pairedDevices.size()>0){
用于(蓝牙设备:pairedDevices){
mDeviceName.add(device.getName());
mDeviceMAC.add(device.getAddress());
}
}
bluetoothClass.setDeviceName(mDeviceName);
bluetoothClass.setDeviceMac(mDeviceMAC);
在这里,我获得所有配对设备的
MAC
设备名称
。我想做的事情是,当我选择一个它连接到
蓝牙设备时

实例 在一个
Samsung S4
上,当我打开
Bluetooth
时,它会弹出一个
对话框,其中包含我所有的配对设备,当我点击它连接的任何人时(我已经能够…),所以基本上我想这样做,因为现在我已经得到了配对设备(我不知道这是否是获得配对设备的最佳方式,但确实如此)然后,当用户单击它连接到设备的任何人时


它是这样的,但不幸的是没有得到回答。

不可能在这种格式下给您举一个例子,所以我已经提供给您了 提供一个好的示例和帮助您理解示例的链接

我建议您遵循我提供的步骤,然后 具体问题,您可以将其带到这里,并使用您正在使用的代码片段 难以理解

我建议您使用下载此示例代码:

如果您还没有这样做,最好研究一下:

这是一个很好的教程,他们有很多教程:

您需要在清单中具有以下权限:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
并使您的设备可被其他设备发现:

if (mBluetoothAdapter.getScanMode() !=
        android.bluetooth.BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
    android.content.Intent discoverableIntent =
        new android.content.Intent(
            android.bluetooth.BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(
        android.bluetooth.BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
                300); // You are able to set how long it is discoverable.
    startActivity(discoverableIntent);
}
正如我在书中提到的:

您可以避免使用意图搜索配对设备。什么时候 连接到未配对的设备时,将弹出通知 要求配对设备。配对后,此消息不应显示 同样,对于这些设备,连接应该是自动的(根据 如何编写程序)

我打算启用蓝牙,并使我的设备 发现后,我将代码设置为连接,然后按一个按钮 连接在您的情况下,您需要确保您的配件 也可以发现。在我的例子中,我使用一个唯一的UUID,这两个设备 必须认识到这一点才能连接。这只能在您需要时使用 对两台设备进行编程,无论它们都是android还是一台android和 另一种设备类型

您需要了解如何使用套接字,这是设备通信的方式。
我建议研究这两个链接:


插座用于设置设备之间的连接。将有一个服务器套接字和设备套接字(由许多因素、程序员和实际设备决定)。服务器套接字侦听传入连接,当连接被接受时,设备将进行连接,每个设备都有一个简单的套接字

我不知道你对穿线了解多少。 需要使用线程管理连接:


设备之间的连接在独立于用户的线程上进行管理 接口线程。这是为了防止手机在开机时锁定 设置、查找和建立BT连接

例如:

AcceptThread—侦听连接并接受连接(通过serversocket)的线程。此线程可以长时间运行,等待设备连接

ConnectThread—连接到服务器的设备用于连接到serversocket的线程

ConnectedThread-这是管理两个套接字之间连接的线程


如果这对您有帮助,请告诉我。

无法在此格式中为您提供示例,因此我已向您提供了 提供一个好的示例和帮助您理解示例的链接

我建议您遵循我提供的步骤,然后 具体问题,您可以将其带到这里,并使用您正在使用的代码片段 难以理解

我建议您使用下载此示例代码:

如果您还没有这样做,最好研究一下:

这是一个很好的教程,他们有很多教程:

您需要在清单中具有以下权限:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
并使您的设备可被其他设备发现:

if (mBluetoothAdapter.getScanMode() !=
        android.bluetooth.BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
    android.content.Intent discoverableIntent =
        new android.content.Intent(
            android.bluetooth.BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(
        android.bluetooth.BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
                300); // You are able to set how long it is discoverable.
    startActivity(discoverableIntent);
}
正如我在书中提到的:

您可以避免使用意图搜索配对设备。什么时候 连接到未配对的设备时,将弹出通知 要求配对设备。配对后,此消息不应显示 同样,对于这些设备,连接应该是自动的(根据 如何编写程序)

我打算启用蓝牙,并使我的设备 发现后,我将代码设置为连接,然后按一个按钮 连接在您的情况下,您需要确保您的配件 也可以发现。在我的例子中,我使用一个唯一的UUID,这两个设备 必须认识到这一点才能连接。这只能在您需要时使用 对两台设备进行编程,无论它们都是android还是一台android和 另一种设备类型

您需要了解如何使用套接字,这是设备通信的方式。
我建议研究这两个链接:


插座用于设置设备之间的连接。将有一个服务器套接字和设备套接字(由许多因素、程序员和实际设备决定)。服务器套接字侦听传入连接,当连接被接受时,设备将进行连接,每个设备都有一个简单的套接字

我不知道你对穿线了解多少。 康涅狄格州