gpt4 book ai didi

android - 单击一下即可连接到特定的蓝牙设备

转载 作者:行者123 更新时间:2023-11-29 14:47:04 27 4
gpt4 key购买 nike

我正在尝试使用我的 Android APP 连接到特定设备,直到现在我能够做的是让配对的项目这样做:

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);

我从哪里获取所有已配对设备的 MAC设备名称。我想做的是当我选择一个连接到 Bluetooth 设备时。

示例

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

是这样的question但不幸的是没有答案。

最佳答案

在这种格式下不可能给你举个例子,所以我提供给你带有一个很好的示例和有用的链接,以帮助您理解示例。

我建议您按照我提供的步骤进行操作,然后,当您具体问题,你可以把它带到这里,你有代码 fragment 困难。

我建议您使用下载此示例代码:
http://developer.android.com/samples/BluetoothChat/index.html

如果你还没有,最好学习一下:
http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html

这是一个很好的教程,他们有很多教程:
http://www.tutorialspoint.com/android/android_bluetooth.htm

您的 list 中需要以下权限:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

这是一个建议使用的 Intent ,用于检查是否启用了 BT:

if (!mBluetoothAdapter.isEnabled()) {
android.content.Intent enableIntent = new android.content.Intent(
android.bluetooth.BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
}

并使您的设备可被其他设备发现:

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);
}

正如我在 my answer here 中提到的:

You can avoid using an intent to search for paired devices. When connecting to a device that is not paired, a notification will pop up asking to pair the devices. Once paired this message should not show again for these devices, the connection should be automatic (according to how you have written your program).

I use an intent to enable bluetooth, and to make my device discoverable, I then set up my code to connect, and press a button to connect. In your case, you will need to ensure your accessories are discoverable also. In my case I use a unique UUID, and both devices must recognise this to connect. This can only be used if you are programming both devices, whether both are android or one android and one other device type.

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

http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
http://developer.android.com/reference/android/bluetooth/BluetoothServerSocket.html

套接字用于在设备之间建立连接。会有服务器套接字和设备套接字(由很多因素决定,程序员,实际设备)。服务器套接字监听传入连接,当连接被接受时,设备连接,每个设备都有一个简单的套接字。

我不确定您对线程了解多少。连接需要用线程管理:

http://developer.android.com/guide/components/processes-and-threads.html
http://android-developers.blogspot.com.au/2009/05/painless-threading.html

设备之间的连接在与用户分开的线程上管理 接口(interface)线程。这是为了防止手机在开机时锁定 设置、寻找和建立 BT 连接。

例如:

AcceptThread - 监听连接并接受连接(通过服务器套接字)的线程。此线程可以运行很长时间以等待设备连接。

ConnectThread - 连接到服务器的设备用来连接到服务器套接字的线程。

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

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

关于android - 单击一下即可连接到特定的蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com