繁体   English   中英

在Android中获取本地低能耗蓝牙设备的UUID

[英]Get UUID of local low energy bluetooth device in Android

我正在尝试访问Android中低能耗蓝牙设备的UUID,最终将字符串发布到Web API。

这是我的代码,在敬酒本地名称和mac地址时效果很好:

private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {

        String action = intent.getAction();

        if(BluetoothDevice.ACTION_FOUND.equals(action)) {

            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

            String sMac     = device.getAddress();
            String sName    = device.getName();
            String sUUID    = ""; //HELP!

            Toast toast = Toast.makeText(getApplicationContext(), "Mac: " + sMac + " - Name: " + sName + " - UUID: " + sUUID, Toast.LENGTH_SHORT);
            toast.show();

        }

    }

};

有人能帮忙吗?

可以有多个UUID-代表该设备的BLE特性。

http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids()

您可以遍历UUID数组并获取所需的UUID。

如果您正在寻找单个设备的唯一标识符,则需要可以通过BluetoothDevice.getAddress()获取的MAC地址。

蓝牙UUID(通用唯一标识符)被分配给蓝牙服务,特征,描述符等,以识别每个蓝牙属性。 它不像MAC地址,即每个设备都有一个ID。 因此,当您使用API​​(例如BluetoothGattObj.discoverServices()发现其他连接的蓝牙设备的服务时,它会发现其他蓝牙设备支持的一组服务,特征,描述符等。

使用您提交的以上代码片段,将不会给您任何蓝牙UUID。

在Android-SDK中有一个示例蓝牙低功耗应用程序,当您通过Google的Android网站下载时,其相对路径可能是..\\adt-bundle-windows-x86-xxxx\\sdk\\samples\\android-xx\\connectivity\\BluetoothLeGatt 请参考相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM