gpt4 book ai didi

android device.getUuids 返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:07:49 24 4
gpt4 key购买 nike

我正在尝试使用低功耗蓝牙 (BLE) 通过 Android 应用程序连接到 Arduino Uno。
我正在 Android Studio 上开发,使用 Samsung Galaxy S4 和 Android 5.0.1 版本进行测试
我点击了这个链接:http://www.truiton.com/2015/04/android-bluetooth-low-energy-ble-example/
我正在扫描设备,当我找到一个设备时,我想在连接之前获取它的 UUID,以确保它是正确类型的设备:

mScanCallback = new ScanCallback() {
@Override
@TargetApi(21)
public void onScanResult(int callbackType, ScanResult result) {
BluetoothDevice btDevice = result.getDevice();
ParcelUuid[] uuids = btDevice.getUuids(); //<-- this is always null!! :(

Log.d(TAG, ""+btDevice.fetchUuidsWithSdp()); //<-- prints true.
Log.d(TAG, "result : " + result.toString()); //<-- prints a bunch of relevant info that contains the UUID I want to check.
Log.d(TAG, "uuids : " + uuids); //<-- prints null.
/*
for (ParcelUuid u : uuids) {
//Compare with the UUID of my device, and connect if ok.
}
*/
}

然而,btDevice.getUuids();总是返回 null 没有错误...
如何获取被扫描设备的UUID?
一种蛮力方法是使用正则表达式和 result.toString() 来获取我想要的东西,但必须有更好的方法不是吗?
谢谢

最佳答案

 BluetoothLeScanner scanner = mBluetoothAdapter.getBluetoothLeScanner();
// scan for devices
scanner.startScan(new ScanCallback() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onScanResult(int callbackType, ScanResult result)
{
List<ParcelUuid> uuids = result.getScanRecord().getServiceUuids();
}
}

这适用于 Android 6.0.1

关于android device.getUuids 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925789/

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