Android BLE开发之BluetoothGatt status 133

http://blog.csdn.net/wangdong20/article/details/47397963

最近在做Android BLE开发,第一次接触蓝牙开发可以说遇到好多问题,好在都一一挺过来了!


android的蓝牙开发遇到最常见的问题就是发现连接蓝牙设备连接不上,仔细一看竟然是

BluetoothGatt status 133,在Android开发这边经常出现这种情况,这是导致蓝牙设备连接不上的主要原因。

好多时候因为BluetoothGatt status 133,手机不得不重启才能重新连接上


最后终于找到缓解这种现象的办法android ble 133,解决办法就是要重新连接同一个蓝牙设备的时候,记得调用BluetoothGatt的.close() 方法来关闭当前的蓝牙连接并清掉已使用过的蓝牙连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!我可以为您提供一个简单的Android Studio BLE开发的Demo。 首先,您需要确保您的Android Studio已经正确安装并设置了正确的环境。 接下来,按照以下步骤进行操作: 1. 创建一个新的Android Studio项目。 2. 在项目的`build.gradle`文件中添加以下依赖项: ```groovy dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' implementation 'com.polidea.rxandroidble2:rxandroidble:1.11.0' } ``` 3. 在您的`MainActivity`类中,创建一个`BluetoothAdapter`对象和一个`BluetoothGattCallback`对象: ```java private BluetoothAdapter bluetoothAdapter; private BluetoothGattCallback gattCallback; ``` 4. 在`onCreate`方法中,初始化蓝牙适配器和GATT回调对象: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化蓝牙适配器 bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // 初始化GATT回调 gattCallback = new BluetoothGattCallback() { @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { super.onConnectionStateChange(gatt, status, newState); // 处理连接状态变化的逻辑 } @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { super.onCharacteristicRead(gatt, characteristic, status); // 处理特征值读取的逻辑 } @Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { super.onCharacteristicWrite(gatt, characteristic, status); // 处理特征值写入的逻辑 } // 其他回调方法根据您的需求添加 }; } ``` 5. 在您的`MainActivity`类中,创建以下方法来扫描和连接到BLE设备: ```java private void startScan() { // 检查是否支持BLE if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, "不支持BLE", Toast.LENGTH_SHORT).show(); return; } // 检查蓝牙是否已经打开 if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled()) { Toast.makeText(this, "请打开蓝牙", Toast.LENGTH_SHORT).show(); return; } // 开始扫描BLE设备 bluetoothAdapter.getBluetoothLeScanner().startScan(scanCallback); } private void stopScan() { // 停止扫描BLE设备 bluetoothAdapter.getBluetoothLeScanner().stopScan(scanCallback); } private ScanCallback scanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { super.onScanResult(callbackType, result); // 处理扫描结果的逻辑 } @Override public void onScanFailed(int errorCode) { super.onScanFailed(errorCode); // 处理扫描失败的逻辑 } }; private void connectToDevice(BluetoothDevice device) { BluetoothGatt gatt = device.connectGatt(this, false, gattCallback); // 处理连接到设备的逻辑 } ``` 6. 在您的`MainActivity`类中,添加按钮或其他触发事件的UI元素,并在触发事件时调用上述方法。 这只是一个简单的BLE开发Demo,涵盖了基本的扫描和连接到BLE设备的功能。根据您的具体需求,您可能需要添加更多的逻辑和功能。 请注意,BLE开发需要一些硬件和设备支持,因此在运行此Demo之前,请确保您的设备具备BLE功能。 希望这可以帮助到您!如果您有任何其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值