Android BluetoothChat OBD-II нет ответа от устройства

Я запускаю приложение BluetoothChat с изменениями, сделанными следующим образом:

BluetoothChatService

// Unique UUID for this application
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

BluetoothChatService

// The action listener for the EditText widget, to listen for the return key
private TextView.OnEditorActionListener mWriteListener =
    new TextView.OnEditorActionListener() {
    public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
        // If the action is a key-up event on the return key, send the message
        if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) {
            String message = view.getText().toString();
            sendMessage(message+ "\r");//My CHANGE
        }
        if(D) Log.i(TAG, "END onEditorAction");
        return true;
    }
};

Соединение с устройством OBD идеально, но я не получаю никаких данных от устройства, когда я отправляю "ATI" или "010C" и т. Д.

Я запускаю приложение в Android 4.4.2 (Kit Kat), и приложение основано на примере приложения BluetoothChat в Android 2.2

2 ответа

Я получил это, чтобы работать на меня.

Вместо модификации TextView.OnEditorActionListenerизменить sendMessage() в BluetoothChatFragment следующее:

private void sendMessage(String message) {
    message = message + '\r'; //MY CHANGE
    // Check that we're actually connected before trying anything
    if (mChatService.getState() != BluetoothChatService.STATE_CONNECTED) {
        Toast.makeText(getActivity(), R.string.not_connected, Toast.LENGTH_SHORT).show();
        return;
    }

    // Check that there's actually something to send
    if (message.length() > 0) {
        // Get the message bytes and tell the BluetoothChatService to write
        byte[] send = message.getBytes();
        mChatService.write(send);

        // Reset out string buffer to zero and clear the edit text field
        mOutStringBuffer.setLength(0);
        mOutEditText.setText(mOutStringBuffer);
    }
}

Проблема заключалась в том, что кнопка отправки не проходит через прослушиватель действий редактора.

Я столкнулся с той же проблемой, но ваше решение, похоже, только частично решило проблему. Иногда это работает, а иногда нет. Я должен перекомпилировать его, пока он не заработает.

Другие вопросы по тегам