我正在使用Nexus 4(4.4 kitkat)作为中央和iPad作为外设.外围设备有广告服务.广告包有一些数据(22字节)的服务UUID.当我尝试从
Android扫描外围设备时,iPad外围设备被发现.但是当我尝试从回调中的scanRecord参数获取服务UUID时,我找不到它.我得到的是外设发送的20byte数据.当我尝试使用UUID扫描设备时不能发现那些外设.
以下是iOS代码来广告服务.正在使用的服务ID为“0000192f-0000-1000-8000-00805f9b34fb”
CBUUID *serviceUuid = [CBUUID UUIDWithString:TRANSFER_SERVICE_UUID];
[self.peripheralManager startAdvertising:@{CBAdvertisementDataServiceUUIDsKey : @[serviceUuid],
CBAdvertisementDataLocalNameKey:[[BTLEConfigs sharedBTLEConfig] getAdvertizingUUID]}];
当我扫描没有服务UUID时,设备被发现.
// Device scan callback.
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi, final byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//-- how to retrieve the service id from scanRecord
}
});
}
};
这些服务是在两个iOS设备之间发现的,但在Android设备和iOS外设之间却没有工作.如何使用16位服务UUID扫描外设?任何帮助都不胜感激.