ошибка в Android-приложении с передачей по Bluetooth
Пытаюсь написать программку для Android, позволяющую по нажатию кнопки передавать значения по блютуз, код вроде без ошибок, приложение в режиме отладка запускается, но при нажатии на кнопку останавливается...
Пожалуйста, помогите найти ошибку в коде.
package com.example.klic;
import android.bluetooth.BluetoothSocket;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import java.io.OutputStream;
import android.bluetooth.BluetoothAdapter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;
public class MainActivity extends ActionBarActivity {
private static final String TAG = "KKDSO";
Button button1, button2;
private OutputStream outStream = null;
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
// MAC-адрес Bluetooth модуля
private static String address = "98:d3:31:30:1b:04"; //Вместо “00:00” Нужно нудет ввести MAC нашего bluetooth
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.button1); //Добавляем сюда имена наших кнопок
button2 = (Button) findViewById(R.id.button2);
final int REQUEST_ENABLE_BT = 1;
BluetoothAdapter btAdapter = null;
BluetoothSocket btSocket = null;
OutputStream outStream = null;
btAdapter = BluetoothAdapter.getDefaultAdapter();
button1.setOnClickListener(new OnClickListener() //Если будет нажата кнопка 1 то
{
public void onClick(View v)
{
sendData("1"); // Посылаем цифру 1 по bluetooth
Toast.makeText(getBaseContext(), "Включаем LED", Toast.LENGTH_SHORT).show(); //выводим на устройстве сообщение
}
});
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
sendData("0"); // Посылаем цифру 1 по bluetooth
Toast.makeText(getBaseContext(), "Выключаем LED", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private void sendData(String message) {
byte[] msgBuffer = message.getBytes();
Log.d(TAG, "...Посылаем данные: " + message + "...");
try {
outStream.write(msgBuffer);
} catch (IOException e) {
String msg = "In onResume() and an exception occurred during write: " + e.getMessage();
if (address.equals("00:00:00:00:00:00"))
msg = msg + ".\n\nВ переменной address у вас прописан 00:00:00:00:00:00, вам необходимо прописать реальный MAC-адрес Bluetooth модуля";
msg = msg + ".\n\nПроверьте поддержку SPP UUID: " + MY_UUID.toString() + " на Bluetooth модуле, к которому вы подключаетесь.\n\n";
}
}
}
Источник: Stack Overflow на русском