本来说让手机水平的时候,变为静音,否则有调回原有响铃模式。但是现在变为静音后变不回来了,不知道为啥。package com.example.test;import android.media.AudioManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;public class MainActivity extends Activity { private SensorManager sensorMgr=null;   
  
private float x, y, z;
private int originalRingMode = -1;
protected void onCreate(Bundle savedInstanceState) {   
super.onCreate(savedInstanceState);   

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);   
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
final AudioManager audiomanager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
originalRingMode = audiomanager.getRingerMode();
SensorEventListener lsn = new SensorEventListener() {   
public void onSensorChanged(SensorEvent e) {   
x = e.values[SensorManager.DATA_X];   
y = e.values[SensorManager.DATA_Y];   
z = e.values[SensorManager.DATA_Z];   
setTitle("x="+ x +","+"y="+(int)y+","+"z="+(int)z);    if((int)z == 9 || (int)z == 10 )
                        //此处大家可以无视,因为手机有时候不太水平,所以z== 9 或 10
audiomanager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
else
{
audiomanager.setRingerMode(originalRingMode);

}
}   
public void onAccuracyChanged(Sensor s, int accuracy) {   
}
 
};   
//注册listener,第三个参数是检测的精确度   
sensorMgr.registerListener(lsn, sensor, 
SensorManager.SENSOR_DELAY_GAME);   
}       @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}