//光感器 import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.util.List; public class MainActivity extends AppCompatActivity { private SensorManager manager; private MySensorEventListener mySensorEventListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manager = (SensorManager) getSystemService(SENSOR_SERVICE); /** * 查看所有传感器 */ List<Sensor> sensorList = manager.getSensorList(Sensor.TYPE_ALL); for (Sensor s:sensorList){ System.out.println(s.getName()); } Sensor defaultSensor = manager.getDefaultSensor(Sensor.TYPE_LIGHT); mySensorEventListener = new MySensorEventListener(); //注册传感器 参数1:监听 2.要坚挺的传感器对象 3.决定采用的敏感度 正常 manager.registerListener(mySensorEventListener,defaultSensor,SensorManager.SENSOR_DELAY_NORMAL); } class MySensorEventListener implements SensorEventListener{ //传感器数据变化调用的方法 @Override public void onSensorChanged(SensorEvent sensorEvent) { float value = sensorEvent.values[0]; System.out.println("光线改变值:"+value); } //传感器精度发生改变调用 @Override public void onAccuracyChanged(Sensor sensor, int i) { } } @Override protected void onDestroy() { super.onDestroy(); //释放资源 manager.unregisterListener(mySensorEventListener); mySensorEventListener=null; } } //指南针传感器import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { private SensorManager manager; private MySensorEventlistener mySensorEventlistener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到系统管理者 manager = (SensorManager) getSystemService(SENSOR_SERVICE); //得到指南针传感器 Sensor defaultSensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION); mySensorEventlistener = new MySensorEventlistener(); //注册 manager.registerListener(mySensorEventlistener,defaultSensor,SensorManager.SENSOR_DELAY_NORMAL); } public class MySensorEventlistener implements SensorEventListener{ @Override public void onSensorChanged(SensorEvent sensorEvent) { int value = (int) sensorEvent.values[0]; if(value>0 && value<90){ System.out.println("东北"); } if(value>90 && value<180){ System.out.println("东南"); } if(value>180 && value<270){ System.out.println("西南"); } if(value>270 && value<360){ System.out.println("西北"); } if(value==0){ System.out.println("北"); } if(value==90){ System.out.println("东"); } if(value==180){ System.out.println("南"); } if(value==270){ System.out.println("西"); } } @Override public void onAccuracyChanged(Sensor sensor, int i) { } } //释放 @Override protected void onDestroy() { super.onDestroy(); manager.unregisterListener(mySensorEventlistener); mySensorEventlistener=null; } }
传感器-光感和指南针
最新推荐文章于 2024-04-05 12:26:27 发布