Невозможно подключить мое приложение Android voice command Android к моему модулю Bluetooth H C -05 - PullRequest
0 голосов
/ 22 января 2020
Приложение

My Android использует голосовую команду для домашней автоматизации, для которой необходимо использовать Arduino, и для подключения моего приложения к плате Arduino я использовал H C -05, но соединение не устанавливается. В чем проблема?

Вот ошибка, которую он показывает:

Ошибка подключения к сокету: чтение не удалось, сокет может быть закрыт или истекло время ожидания, чтение в ответ: -1

Вот код:

protected void onResume() {
    super.onResume();
    SharedPreferences preferences = getSharedPreferences("preferences",MODE_PRIVATE);
    deviceName = preferences.getString("controllerName", "NA");
    deviceAddress = preferences.getString("controllerAddress", "");
    Log.d("hello",deviceName);
   // nameView.setText("Connected to " + "\"" + deviceName + "\"");
    if(!deviceAddress.equals("")) {
        device = mBluetoothAdapter.getRemoteDevice(deviceAddress);
        try {
            socket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
        } catch (IOException e) {
            //nameView.setText("Connected to " + "\"" + "NA" + "\"");
            //Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
        }
        mBluetoothAdapter.cancelDiscovery();
        if(socket != null){
            try {
                socket.connect();
            } catch (IOException e) {
                //nameView.setText("Connected to " + "\"" + "NA" + "\"");
                //Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                Log.e(TAG, "socket connect failed: " + e.getMessage() + "\n");
                try {
                    socket.close();
                } catch (IOException e1) {
                    Log.e(TAG, "socket closing failed: " + e1.getMessage() + "\n");
                    //Toast.makeText(getApplicationContext(), e1.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        }
        if (socket != null){
            try {
                os = socket.getOutputStream();
            } catch (IOException e) {
                Log.e(TAG, "getting output stream failed: " + e.getMessage() + "\n");
                //Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    }
    else {
        Toast.makeText(getApplicationContext(),"Connect to a device",Toast.LENGTH_LONG).show();
    }
}

@Override
public void onPause() {
    super.onPause();
    if (os != null && socket.isConnected()) {
        try {
            os.flush();
        } catch (IOException e) {
            Log.e(TAG, "flushing output stream failed: " + e.getMessage() + "\n");
            Toast.makeText(getApplicationContext(), e.getMessage(),Toast.LENGTH_LONG).show();
        }
    }
    try {
        if(socket != null)
            socket.close();
    } catch (IOException e) {
        Log.e(TAG, "closing socket failed: " + e.getMessage() + "\n");
        Toast.makeText(getApplicationContext(), e.getMessage(),Toast.LENGTH_LONG).show();
    }
}
...