我想创建Android上的L和我的其他Android设备扫描该设备,并试图与它连接的广告客户。
但每次我打电话 connectGatt
我收到 BluetoothProfile.STATE_DISCONNECTED
关贸总协定回调。时间
这是我如何创建广告
//广告设置 AdvertiseSettings.Builder builderSetting =新AdvertiseSettings.Builder(); builderSetting.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_BALANCED); builderSetting.setConnectable(真); builderSetting.setTimeout(0); builderSetting.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH); //广告数据 AdvertiseData.Builder builderData =新AdvertiseData.Builder(); builderData.addServiceUuid(新 ParcelUuid(UUID.fromString(00002a29-0000-1000-8000-00805f9b34fb))); 字节mServiceData [] = {(字节)为0xFF,(字节)0xFE的,(字节)为0x00(字节)为0x01(字节)0×02(字节)×03(字节)0×04}; //我试图与addding服务数据 builderData.addServiceData(新 ParcelUuid(UUID.fromString(00002a29-0000-1000-8000-00805f9b34fb)),mServiceData); //启动广告 mBTAdvertiser.startAdvertising( builderSetting.build(), builderData.build(),mAdvCallback);
解决方案
由于我不能评论还没有生病尽量做到一个答案。
在你的榜样,我只看到启用了广告。然而,为了提供GATT服务,您还需要创建一个GATT服务器用于处理请求。
检查出文档, BluetoothManager.openGattServer(...)。
祝你好运!
I am trying to create a advertiser on Android L and my other android device is scanning that device and trying to make a connection with it.
but every time i call connectGatt
i am getting BluetoothProfile.STATE_DISCONNECTED
in gatt callback.
this is how i have created the advertisement
// advertisement settings
AdvertiseSettings.Builder builderSetting= new AdvertiseSettings.Builder();
builderSetting.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_BALANCED);
builderSetting.setConnectable(true);
builderSetting.setTimeout(0);
builderSetting.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
//advertisement data
AdvertiseData.Builder builderData = new AdvertiseData.Builder();
builderData.addServiceUuid(new
ParcelUuid(UUID.fromString("00002a29-0000-1000-8000-00805f9b34fb")));
byte mServiceData[] =
{ (byte)0xff, (byte)0xfe, (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04 };
// i tried with addding service data
builderData.addServiceData(new
ParcelUuid(UUID.fromString("00002a29-0000-1000-8000-00805f9b34fb")), mServiceData);
//start advertising
mBTAdvertiser.startAdvertising(
builderSetting.build(),
builderData.build(), mAdvCallback);
解决方案
Since i can't comment yet ill try to make it an answer.
In your example i only see the Advertising enabled. However to offer GATT services, you also need to create a GATT-server which handles the requests.
Check out the documentation to BluetoothManager.openGattServer(...).
Good luck!