Helllo,
I've played a little with the amarino library and so far im able to send values from android to arduino succesfully. Now i want to send some sensor reading from arduino to the android device.
I've wrote this code in android in order to get the values
public class ArduinoReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String data = null;
int[] var= new int[10];
final String address = intent.getStringExtra(AmarinoIntent.EXTRA_DEVICE_ADDRESS);
final int dataType = intent.getIntExtra(AmarinoIntent.EXTRA_DATA_TYPE, -1);
if (dataType == AmarinoIntent.STRING_EXTRA)
{
data = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
testview = (TextView)findViewById(R.id.result);
testview.setText(data);
Scanner s = null;
try
{
s = new Scanner(data);
s.useDelimiter(",\\s*");
int i=1;
while (s.hasNext())
{
if (s.hasNextInt())
{
var[i]= s.nextInt();
}
else
{
s.next();
}
i++;
}
}
finally
{
s.close();
testview = (TextView)findViewById(R.id.textView1);
testview.setText(Integer.toString(var[1]));
testview = (TextView)findViewById(R.id.textView2);
testview.setText(Integer.toString(var[2]));
testview = (TextView)findViewById(R.id.textView3);
testview.setText(Integer.toString(var[3]));
testview = (TextView)findViewById(R.id.textView4);
testview.setText(Integer.toString(var[4]));
testview = (TextView)findViewById(R.id.textView5);
testview.setText(Integer.toString(var[5]));
}
}
}
}
package nik.com;
import java.util.Scanner;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;
import at.abraxas.amarino.Amarino;
import at.abraxas.amarino.AmarinoIntent;
public class Am_test extends Activity {
/** Called when the activity is first created. */
private static final String DEVICE_ADDRESS = "00:06:66:42:1F:C8";
private ArduinoReceiver arduinoReceiver = new ArduinoReceiver();
TextView testview;
String num;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onStart() {
super.onStart();
// in order to receive broadcasted intents we need to register our receiver
registerReceiver(arduinoReceiver, new IntentFilter(AmarinoIntent.ACTION_RECEIVED));
// this is how you tell Amarino to connect to a specific BT device from within your own code
Amarino.connect(this, DEVICE_ADDRESS);
}
@Override
protected void onStop() {
super.onStop();
// if you connect in onStart() you must not forget to disconnect when your app is closed
Amarino.disconnect(this, DEVICE_ADDRESS);
// do never forget to unregister a registered receiver
unregisterReceiver(arduinoReceiver);
}
public class ArduinoReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String data = null;
int[] var= new int[10];
final String address = intent.getStringExtra(AmarinoIntent.EXTRA_DEVICE_ADDRESS);
final int dataType = intent.getIntExtra(AmarinoIntent.EXTRA_DATA_TYPE, -1);
if (dataType == AmarinoIntent.STRING_EXTRA)
{
data = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
testview = (TextView)findViewById(R.id.result);
testview.setText(data);
Scanner s = null;
try
{
s = new Scanner(data);
s.useDelimiter(",\\s*");
int i=1;
while (s.hasNext())
{
if (s.hasNextInt())
{
var[i]= s.nextInt();
}
else
{
s.next();
}
i++;
}
}
finally
{
s.close();
testview = (TextView)findViewById(R.id.textView1);
testview.setText(Integer.toString(var[1]));
testview = (TextView)findViewById(R.id.textView2);
testview.setText(Integer.toString(var[2]));
testview = (TextView)findViewById(R.id.textView3);
testview.setText(Integer.toString(var[3]));
testview = (TextView)findViewById(R.id.textView4);
testview.setText(Integer.toString(var[4]));
testview = (TextView)findViewById(R.id.textView5);
testview.setText(Integer.toString(var[5]));
}
}
}
}
}