intent.getStringExtra总是返回null

使用android官方低功耗蓝牙demo的时候, intent.getStringExtra总是返回null,求解!!

【DeviceControlActivity】

  private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
                mConnected = true;
                updateConnectionState(R.string.connected);
                invalidateOptionsMenu();
            } else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) {
                mConnected = false;
                updateConnectionState(R.string.disconnected);
                invalidateOptionsMenu();
                clearUI();
            } else if (BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.equals(action)) {  
                displayGattServices(mBluetoothLeService.getSupportedGattServices());
            } else if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) {
                displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA));
        }
        }
    };
【BluetoothLeService】

     private void broadcastUpdate(final String action,
                                 final BluetoothGattCharacteristic characteristic) {
        final Intent intent = new Intent(action);

        if (!UUID_DATA_FROM_ARDUINO.equals(characteristic.getUuid())) {
            final byte[] data = characteristic.getValue();
            if (data != null && data.length > 0) {
                final StringBuilder stringBuilder = new StringBuilder(data.length);
                for (byte byteChar : data)
                    stringBuilder.append(String.format("%02X ", byteChar));
                intent.putExtra(EXTRA_DATA, new String(data) + "\n" + stringBuilder.toString());
            }
        }
        sendBroadcast(intent);

这个位置断点,有数据吗?

 intent.putExtra(EXTRA_DATA, new String(data) + "\n" + stringBuilder.toString());

你这个stringBuilder用得真是费解。byte 与stringBuilder的逻辑没看懂。你直接Byte转换成字符串穿过去试试。。
还有。不会断点的h话,打个日志,看看!UUID_DATA_FROM_ARDUINO.equals(characteristic.getUuid())这个逻辑进去没。