【问题标题】:Get UUID of local low energy bluetooth device in Android在Android中获取本地低功耗蓝牙设备的UUID
【发布时间】:2014-04-06 19:22:05
【问题描述】:

我正在尝试访问 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();

        }

    }

};

有人可以帮忙吗?

【问题讨论】:

    标签: android bluetooth bluetooth-lowenergy android-bluetooth


    【解决方案1】:

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

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

    您可以遍历 UUID 数组并获取您想要的。

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

    【讨论】:

      【解决方案2】:

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

      使用上面你提交的代码sn-p不会给你任何蓝牙UUID。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-25
        • 2011-06-24
        • 1970-01-01
        • 2016-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多