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);
}
}
Проблема заключалась в том, что кнопка отправки не проходит через прослушиватель действий редактора.
Я столкнулся с той же проблемой, но ваше решение, похоже, только частично решило проблему. Иногда это работает, а иногда нет. Я должен перекомпилировать его, пока он не заработает.