You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android BLE无法发现MSP432 SensorHub服务问题求助

排查MSP432 SensorHub服务找不到的问题

我来帮你梳理下排查思路,结合你给出的代码片段,先从几个最容易出问题的关键点入手:

1. 先检查UUID是否完整

你代码里的TEMP_SERVICE UUID明显被截断了:

private static final UUID TEMP_SERVICE = UUID.fromString("f000aa00-0451-4000-b00...");

TI官方MSP432 SensorHub示例的温度服务完整UUID是 f000aa00-0451-4000-b000-000000000000,UUID不完整会直接导致系统无法匹配到对应服务,这是最常见的坑。

2. 确认Gatt连接流程是否正确

从你声明的mBluetoothGatt来看,要确保你是按标准流程完成连接和服务发现的:

  • 设备连接成功后,必须调用 mBluetoothGatt.discoverServices() 主动触发服务发现
  • 所有服务查找的逻辑必须放在 BluetoothGattCallback 的 onServicesDiscovered 回调里,不能在连接成功后立即调用getService(),因为服务发现是异步操作

给你个标准的回调实现参考:

private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
    @Override
    public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
        super.onConnectionStateChange(gatt, status, newState);
        if (newState == BluetoothProfile.STATE_CONNECTED) {
            // 连接成功后立刻启动服务发现
            Log.d(TAG, "设备已连接,开始发现服务");
            gatt.discoverServices();
        }
    }

    @Override
    public void onServicesDiscovered(BluetoothGatt gatt, int status) {
        super.onServicesDiscovered(gatt, status);
        if (status == BluetoothGatt.GATT_SUCCESS) {
            // 在这里查找目标温度服务
            BluetoothGattService tempService = gatt.getService(TEMP_SERVICE);
            if (tempService != null) {
                Log.d(TAG, "温度服务已找到!");
                // 接下来可以获取温度特征值
                BluetoothGattCharacteristic tempChar = tempService.getCharacteristic(UUID.fromString("f000aa01-0451-4000-b000-000000000000"));
            } else {
                Log.e(TAG, "未找到目标温度服务");
                // 打印所有已发现的服务,排查UUID是否匹配
                for (BluetoothGattService service : gatt.getServices()) {
                    Log.d(TAG, "已发现服务UUID: " + service.getUuid().toString());
                }
            }
        } else {
            Log.e(TAG, "服务发现失败,状态码: " + status);
        }
    }
};

3. 硬件与固件层面排查

  • 确认CC2650 BoosterPack烧录的是TI官方SensorHub示例固件(可以从simplelink_msp432p4_sdk里找到对应项目)
  • 检查Sensor BoosterPack是否正确插在MSP432开发板上,引脚对齐无误
  • 确保设备蓝牙处于可连接状态,Android设备已和它完成配对(有些设备需要配对后才能访问GATT服务)

4. Logcat排查技巧

如果还是找不到服务,建议在onServicesDiscovered里打印所有已发现的服务UUID,这样就能直观看到设备实际广播的服务是什么,对比你使用的UUID是否一致,避免用错UUID。


内容的提问来源于stack exchange,提问作者Gruwy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:05:01