Android Light Sensor
来源:互联网 发布:三维重建软件有哪些 编辑:程序博客网 时间:2024/06/04 18:54
下面这段话都能看懂吧~
Here I am explaining you how to use Light Sensor of Android.
1. Implement SensorEventListener
2. Create variable for SensorManager and Sensor
3. Get Object of SensorManager using system service
4. Get Object of Light Sensor from SensorManager
5. Implement onAccuracyChanged and onSensorChanged method
package com.test;import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.util.Log;public class Test extends Activity implements SensorEventListener{ private SensorManager mSensorManager; private Sensor mLight; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); } @Override protected void onResume() { mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL); super.onResume(); } @Override protected void onPause() { mSensorManager.unregisterListener(this); super.onPause(); } public void onAccuracyChanged(Sensor sensor, int accuracy) { if(sensor.getType() == Sensor.TYPE_LIGHT){ Log.i("Sensor Changed", "Accuracy :" + accuracy); } } public void onSensorChanged(SensorEvent event) { if( event.sensor.getType() == Sensor.TYPE_LIGHT){ Log.i("Sensor Changed", "onSensor Change :" + event.values[0]); } }}
所有传感器:
package androidegg.stu.sensor;import java.util.List;import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.widget.TextView;public class AndroidEggSensorGetValueActivity extends Activity implements SensorEventListener{ //...① /** Called when the activity is first created. */ private SensorManager sensorManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //SensorManager的接口取得 sensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE); setContentView(R.layout.main); } @Override protected void onResume(){ //...② super.onResume(); List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL); //sensor1 for (Sensor s : sensors){ sensorManager.registerListener(this,s,SensorManager.SENSOR_DELAY_NORMAL); } } // @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent e) { //...③ // TODO Auto-generated method stub switch(e.sensor.getType()){ //加速度的值表示 case Sensor.TYPE_ACCELEROMETER:{ TextView x = (TextView)findViewById(R.id.x); x.setText("x:" + String.valueOf(e.values[SensorManager.DATA_X])); TextView y = (TextView)findViewById(R.id.y); y.setText("y:" + String.valueOf(e.values[SensorManager.DATA_Y])); TextView z =(TextView)findViewById(R.id.z); z.setText("z:" + String.valueOf(e.values[SensorManager.DATA_Z])); break; } //倾斜度的值表示 case Sensor.TYPE_ORIENTATION:{ TextView x = (TextView)findViewById(R.id.Azimuth); x.setText("Azimuth" + String.valueOf(e.values[SensorManager.DATA_X])); TextView y = (TextView)findViewById(R.id.Pitch); y.setText("Pitch:" + String.valueOf(e.values[SensorManager.DATA_Y])); TextView z = (TextView)findViewById(R.id.Roll); z.setText("Roll:" + String.valueOf(e.values[SensorManager.DATA_Z])); break; } //磁力计 的值表示 case Sensor.TYPE_MAGNETIC_FIELD:{ TextView x = (TextView)findViewById(R.id.magnetic_x); x.setText("x:" + String.valueOf(e.values[SensorManager.DATA_X])); TextView y = (TextView)findViewById(R.id.magnetic_y); y.setText("y:" + String.valueOf(e.values[SensorManager.DATA_Y])); TextView z= (TextView)findViewById(R.id.magnetic_z); z.setText("z:" + String.valueOf(e.values[SensorManager.DATA_Z])); break; } //温度計の値を表示する case Sensor.TYPE_TEMPERATURE:{ TextView x = (TextView)findViewById(R.id.degree); x.setText("Degree:" + String.valueOf(e.values[SensorManager.DATA_X])); } } } // @Override protected void onStop(){ super.onStop(); //...④ sensorManager.unregisterListener(this); }}重要事项如下所示① 为了取得传感器的值,需要加载SensorEventListener② 在onResume方法进行*********的登录③ 在onSensorChanged方法中取得传感器的值,并在画面表示。 在这个方法中在onResume方法中登录的所有种类的传感器的值都可以取道。判别传感器的种类,将传感器的值用 TextView在画面表示出来。④ 在onStop方法中接触所有登录的*********。
- android light sensor port
- Android Light Sensor
- Android Light Sensor
- Android: Android Light Sensor HOWTO
- Android: Android Light Sensor HOWTO
- Android: Android Light Sensor HOWTO
- Android Light Sensor与Temperature Sensor开发
- android study ------ HAL ---> light sensor
- android study ------ HAL ---> light sensor
- android 光线传感器 light sensor的使用
- MTK light sensor驱动
- ICS g-sensor,light sensor移植记录
- light-sensor驱动简单认识
- ROHM BH1710 light sensor调试
- Arduino开发之Light Sensor
- 使用C++ Builder XE5获取Sensor值之Light Sensor
- Android Sensor
- android sensor
- 黑马程序员JAVA基础-封装
- 【只要真实,今生无悔】
- 宋宝华 《Linux设备驱动开发详解》之基本字符设备驱动misc版本
- 错误:'release' is unavailable: not available in automatic reference counting mode.(Xcode 4.6.2+iOS6.1)
- ICE技术概论
- Android Light Sensor
- Mysql 5.6 Can't find messagefile '/usr/share/mysql/errmsg.sys'解决方法
- myeclipse无法安装插件的问题
- matlab 和 excel 数据的导入导出 [李园7舍_404]
- 致我们的青春
- java Syntax error,parameterized types are only available if source level is 5.0
- linux 触摸屏驱动分析
- platform_driver_probe与platform_driver_register的区别
- Linux diff命令详解