I am trying to make an app which calls a certain number just by hovering palm over android device. I have created a Background service for doing so. But when I start the service and wave over my device, the app crashes! So my question in that is it possible to make a CERTAIN phone call by making use of change in Sensor readings? Here's my code of Service class
public class ProxService extends Service implements SensorEventListener { SensorManager manager;
Sensor prox;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
manager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
prox = manager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
manager.registerListener(ProxService.this,prox,SensorManager.SENSOR_DELAY_NORMAL);
return START_STICKY;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
manager.unregisterListener(this);
Toast.makeText(getApplicationContext(),"Accelerometer Service Stopped!",0).show();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
//Neglect it!
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
float reading;
reading = event.values[0];
//AM I GIVING RIGHT CONDITION HERE?
while(reading == 0.0){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:+XXXXXXXXXX"));
startActivity(intent);
break;
}
}
}
I have checked all necessary Permissions required in manifest!