在使用蓝牙连接智能越来越STATE_DISCONNECTED蓝牙、智能、STATE_DISCONNECTED

2023-09-07 00:18:29 作者:会发光的是灯泡

我想创建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!

 
精彩推荐