Приложение
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();
}
}