Full source code available in Github
1. Read Battery Level
The following code snippet call to read the Bean's battery level, the callback's onResult is invoked with a BatteryLevel object represents the measured battery level, you can get the battery voltage and percentage of battery level.
bean.readBatteryLevel(new Callback<BatteryLevel>() {
@Override
public void onResult(BatteryLevel result) {
Log.d(TAG, "result: "+result.getPercentage());
Log.d(TAG, "Battery percentage: "+result.getPercentage());
Log.d(TAG, "Battery volt: "+result.getVoltage());
}
}
);
The callback is invoked with a Boolean, True indicating the Bean's Arduino is ON and OFF if False.
bean.readArduinoPowerState(new Callback<Boolean>() {
@Override
public void onResult(Boolean result) {
Log.d(TAG, "result: "+result);
}
});
3. Read Acceleration in X, Y and Z - axis
For read acceleration, the parameter passed to the callback handler is an Acceleration object which contains acceleration on X, Y and Z axis, you can retrieve those values by the x(), y() and z() getter of the Acceleration object.
bean.readAcceleration(new Callback<Acceleration>() {
@Override
public void onResult(Acceleration result) {
Log.d(TAG, "result: "+result);
Log.d(TAG, "Acceleration on X-axis: "+result.x());
Log.d(TAG, "Acceleration on y-axis: "+result.y());
Log.d(TAG, "Acceleration on z-axis: "+result.z());
}
});
4. Read AccelerometerRange
As per the Beans' Android SDK, the SDK shall invoke the callback function passing an AccelerometerRange object. However, I found that the SDK is passing an Integer instead. As a result, I am always getting Class Cast exception.
bean.readAccelerometerRange(new Callback<AccelerometerRange>() {
@Override
public void onResult(AccelerometerRange result) {
Log.d(TAG, "result: "+result);
}
});
5. Read the RGB LED
You can also read the LED colour with the Bean's readLed function call, you will then get a LedColor object with contains 3 integers representing the R, G, B intensity of the LED.
bean.readLed(new Callback<LedColor>() {
@Override
public void onResult(LedColor result) {
Log.d(TAG, "result: "+result);
}
});
6. Reading Pins value
The SDK doesn't provide function to read the Pins value, but it shall be very easy to have a Bean's Sketch to put the Pins value to Scratch Data or Virtual Serial Port that an Android App can read. Let me know if you are interested to see some example code on this.