我试图访问Android中的低能耗蓝牙设备的UUID,最终将字符串发布到网络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();
}
}
};
任何人都可以帮忙吗?
答案 0 :(得分:2)
可以有多个UUID - 代表该设备的BLE特性。
http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids()
您可以迭代UUID数组并获取所需的那个。
如果您正在寻找单个设备的唯一标识符,那么您需要通过BluetoothDevice.getAddress()
答案 1 :(得分:2)
蓝牙UUID(通用唯一标识符)被分配给蓝牙服务,特征,描述符等,以识别每个蓝牙属性。它不像MAC地址,即每个设备有一个ID。因此,当您使用BluetoothGattObj.discoverServices()
等API发现其他连接蓝牙设备的服务时,它会发现其他蓝牙设备支持的一组服务,特征,描述符等。
使用您提交的上述代码段不会为您提供任何蓝牙UUID。
Android-SDK中提供了示例蓝牙低功耗应用程序,当您通过Google的Android网站下载时,其相对路径可能为..\adt-bundle-windows-x86-xxxx\sdk\samples\android-xx\connectivity\BluetoothLeGatt
。请参考相同的内容。