The Pocket Science Lab Android app has Barometer Instrument implemented in it. Although the instrument is currently working through the mobile sensors and not the PSLab i2c library as there were some issues in the i2c communication with PSLab device.
Thus as the barometer was completely working on through the mobile sensors, there was a major problem coming up. Majority of the mobiles don’t have the barometer sensor which was required, only a few of the latest devices have the sensors in them.
This issues created problem as now anyone who would have used the barometer instrument would have made an impression that the App was itself not working.
Figure(1) : Showing the stagnant barometer Instrument
Thus this created a bad impression for both the app and it’s developers.
Solving the issue
To solve this major bug, it required to first detect the barometer instrument and then implementing an alert dialog-box showing that barometer sensor is not present in his device.
- Detecting the Barometer Sensor[2]
The barometer sensor was detected using the sensorManager class of Java
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor = sensorManager != null ? sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) : null;
Thus using this code the barometer sensor is detected, if sensor was not present the sensorManger would be null.
- Implementing the alert-box[1]
Thus if the sensorManger variable was null it notified that the sensor was not present in the device and corresponding to which an alert-box was implemeneted
if (sensor == null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (!isFinishing()) {
new AlertDialog.Builder(BarometerActivity.this)
.setTitle(R.string.barometer_alert_title)
.setMessage(R.string.barometer_alert_description)
.setCancelable(false)
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
}
});
Thus as we can see in the code snippet the alert dialog-box will appear if sensor is not present as shown in figure (2).
Figure(2) : Screenshot showing alert-box
Resources
- Android Alert-box Example, Mkyong.com:
https://www.mkyong.com/android/android-alert-dialog-example/ - Creating a Barometer Application for Android, medium.com:
https://medium.com/@ssaurel/creating-a-barometer-application-for-android-1c0a5c10b20e