Пишу для планшета.
Не могу соединиться.
То есть приложение говорит, что коннектится, но диод статуса не загорается.
Что я делаю не так?
Код:
package com.example.andrey.myhelloworld;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
//Сокет, с помощью которого мы будем отправлять данные на Arduino
BluetoothSocket clientSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Включаем bluetooth. Если он уже включен, то ничего не произойдет
String enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE;
startActivityForResult(new Intent(enableBT), 0);
//Мы хотим использовать тот bluetooth-адаптер, который задается по умолчанию
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
try{
//Устройство с данным адресом - наш Bluetooth Bee
//Адрес опредеяется следующим образом: установите соединение
//между ПК и модулем (пин: 1234), а затем посмотрите в настройках
//соединения адрес модуля. Скорее всего он будет аналогичным.
BluetoothDevice device = bluetooth.getRemoteDevice("00:12:11:30:00:77");
//Инициируем соединение с устройством
Method m = device.getClass().getMethod(
"createRfcommSocket", new Class[] {int.class});
clientSocket = (BluetoothSocket) m.invoke(device, 1);
clientSocket.connect();
//В случае появления любых ошибок, выводим в лог сообщение
} catch (IOException e) {
Log.d("BLUETOOTH", e.getMessage());
} catch (SecurityException e) {
Log.d("BLUETOOTH", e.getMessage());
} catch (NoSuchMethodException e) {
Log.d("BLUETOOTH", e.getMessage());
} catch (IllegalArgumentException e) {
Log.d("BLUETOOTH", e.getMessage());
} catch (IllegalAccessException e) {
Log.d("BLUETOOTH", e.getMessage());
} catch (InvocationTargetException e) {
Log.d("BLUETOOTH", e.getMessage());
}
//Выводим сообщение об успешном подключении
Toast.makeText(getApplicationContext(), "CONNECTED", Toast.LENGTH_LONG).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.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();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void buttonPlaySound1_Click(View view) {
TextView tvHello = (TextView)findViewById(R.id.textView);
tvHello.setText("Воспроизвести звук 1");
//Пытаемся послать данные
try {
//Получаем выходной поток для передачи данных
OutputStream outStream = clientSocket.getOutputStream();
String s;
s="play_sound";
//Пишем данные в выходной поток
outStream.write(s.getBytes("UTF-8"));
outStream.write(13);
outStream.write(10);
} catch (IOException e) {
//Если есть ошибки, выводим их в лог
Log.d("BLUETOOTH", e.getMessage());
}
}
public void buttonPlaySound2_Click(View view) {
TextView tvHello = (TextView)findViewById(R.id.textView);
tvHello.setText("Воспроизвести звук 2");
//Пытаемся послать данные
try {
//Получаем выходной поток для передачи данных
OutputStream outStream = clientSocket.getOutputStream();
String s;
s="play_sound 2";
//Пишем данные в выходной поток
outStream.write(s.getBytes("UTF-8"));
outStream.write(13);
outStream.write(10);
} catch (IOException e) {
//Если есть ошибки, выводим их в лог
Log.d("BLUETOOTH", e.getMessage());
}
}
}