Вот все, что было использовано для приема и передачи. Если это хоть о чем-нить говорит - тогда разберетесь, нет - тогда сначала читать книжки по Жава и Андроид и доки к Amarino (там все работает как часы).
Плагины - всего лишь обертка над API. Нафига лишняя прослойка?
Amarino должен быть отдельным проектом в эклипсе и подключен к Вашему проекту, чтобы импорт нормально прошел.
import at.abraxas.amarino.Amarino;
import at.abraxas.amarino.AmarinoIntent;
private ArduinoReceiver arduinoReceiver = new ArduinoReceiver();
final static String BT_ADDRESS = "00:19:5D:EE:3E:9A";
registerReceiver(arduinoReceiver, new IntentFilter(AmarinoIntent.ACTION_RECEIVED));
Amarino.connect(this, BT_ADDRESS);
Amarino.disconnect(this, BT_ADDRESS);
unregisterReceiver(arduinoReceiver);
public class ArduinoReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String data = null;
final int dataType = intent.getIntExtra(AmarinoIntent.EXTRA_DATA_TYPE, -1);
if (dataType == AmarinoIntent.STRING_EXTRA){
data = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
if (data != null){
mIsArduinoDataReceived = true;
if (data.contains("IR:")) {
data = data.replaceAll("[^0-9]", "");
int irCommand = Integer.parseInt(data);
Log.d( LOG, "IR Command:" + irCommand);
switch (irCommand) {
case IR_VOLUME_DOWN:
changeAudioVolume(false);
break;
case IR_VOLUME_UP:
changeAudioVolume(true);
break;
case IR_PRESET_DOWN:
changeRadioPreset(false);
updateRadioUI();
break;
case IR_PRESET_UP:
changeRadioPreset(true);
updateRadioUI();
break;
case IR_PREV_TRACK:
prevPlayerTrack();
break;
case IR_NEXT_TRACK:
nextPlayerTrack();
break;
case IR_MUTE:
AudioControlActivity.updateAudioMute();
break;
case IR_MODE:
updateAppMode();
break;
}
}
else {
switch (mLastArduinoCommand) {
case 'A':
ClimateControlActivity.updateInternalTemperature(d ata);
break;
case 'E':
ClimateControlActivity.updateExternalTemperature(d ata);
break;
case 'Y':
case 'Z':
HeaterEditActivity.updateHeaterTemperature(data);
break;
}
}
}
}
}
}
static void sendCommandToArduino(final char command, final String data) {
Amarino.sendDataToArduino(Globals.getAppContext(), LauncherService.BT_ADDRESS, command, data);
}
Amarino.sendDataToArduino(this, LauncherService.BT_ADDRESS, 'S', data);