Android 单击即可连接到特定的蓝牙设备
我正在尝试使用我的Android应用程序连接到特定设备,直到现在,我所能做的是让配对的项目执行以下操作:Android 单击即可连接到特定的蓝牙设备,android,android-bluetooth,Android,Android Bluetooth,我正在尝试使用我的Android应用程序连接到特定设备,直到现在,我所能做的是让配对的项目执行以下操作: BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Set < BluetoothDevice > pairedDevices = bluetoothAdapter.getBondedDevices(); if (pairedDevices.size() > 0) { f
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和
另一种设备类型
您需要了解如何使用套接字,这是设备通信的方式。
我建议研究这两个链接:
插座用于设置设备之间的连接。将有一个服务器套接字和设备套接字(由许多因素、程序员和实际设备决定)。服务器套接字侦听传入连接,当连接被接受时,设备将进行连接,每个设备都有一个简单的套接字
我不知道你对穿线了解多少。
康涅狄格州