public class accel_vol extends Activity{
private TextView mTxtView;
private String status = null;
private AudioManager mAudioManager;
private SensorManager mSensorManager;
private int vol_max_speaker=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mTxtView = new TextView(this);
setContentView(mTxtView);
mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
}
public void updateTV(float p_x, float p_y, float p_z, String status2)
{
status=positiontest(p_y);
mTxtView.setText("x: "+Math.round(p_x)+", y: "+Math.round(p_y)+", z: "+Math.round(p_z)+"\n"+status);
}
private final SensorListener mSensorListener = new SensorListener() {
public void onSensorChanged(int sensor, float[] values)
{
status=positiontest(SensorManager.DATA_Y);
updateTV(values[SensorManager.DATA_X],
values[SensorManager.DATA_Y],
values[SensorManager.DATA_Z],
status);
}
public void onAccuracyChanged(int sensor, int accuracy) {}
};
@Override
protected void onResume()
{
super.onResume();
mSensorManager.registerListener(mSensorListener,
SensorManager.SENSOR_ORIENTATION,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onStop()
{
mSensorManager.unregisterListener(mSensorListener);
super.onStop();
}
private String positiontest(float y)
{
if ((y>-20)&&(y<20))
{
mAudioManager.setSpeakerphoneOn(true);
mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, vol_max_speaker, AudioManager.FLAG_SHOW_UI);
mAudioManager.setRouting(AudioManager.MODE_CURRENT, AudioManager.ROUTE_SPEAKER, 1);
return "Horizontal + Display Up";
}
if ((y<-70)&&(y>-110))
{
mAudioManager.setSpeakerphoneOn(true);
mAudioManager.setRouting(AudioManager.MODE_CURRENT, AudioManager.ROUTE_EARPIECE, 1);
mAudioManager.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL,AudioManager.ADJUST_LOWER,AudioManager.FLAG_SHOW_UI);
return "Vertical";
}
if (((y>160)&&(y<180))||((y<-160)&&(y>=-180)))
{
mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setRouting(AudioManager.RINGER_MODE_VIBRATE, AudioManager.ROUTE_SPEAKER, 1);
mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.FLAG_SHOW_UI);
return "Horizontal + Display Down";
}
if ((y>-155)&&(y<-115))
{
mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setRouting(AudioManager.RINGER_MODE_VIBRATE, AudioManager.ROUTE_SPEAKER, 1);
mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
return "Oblique + Display Down";
}
if ((y>-65)&&(y<-25))
{
mAudioManager.setSpeakerphoneOn(true);
mAudioManager.setRouting(AudioManager.MODE_CURRENT, AudioManager.ROUTE_EARPIECE, 1);
mAudioManager.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL,AudioManager.ADJUST_LOWER,AudioManager.FLAG_SHOW_UI);
return "Oblique + Display Up";
}
else
return "Waiting for a known position...";
}
}