Android 光线传感器的调用
1.activity如果要使用傳感器,就必須實(shí)現(xiàn)SensorEventListener接口
2.得到傳感器管理對(duì)象(sensormanager)
3.使用sensormanager.registerlistener 方法注冊(cè)指定的傳感器
4.在sensoreventlistener 接口中的onsensorchanged和onaccuracychanged方法中完成其他具體工作
public class TestActivity extends Activity {private SensorManager sensorManager;//第三步:對(duì)傳感器信號(hào)進(jìn)行監(jiān)聽private SensorEventListener listener = new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {//提示當(dāng)前光照強(qiáng)度Toast.makeText(TestActivity.this,"當(dāng)前光照強(qiáng)度:" + event.values[0] + "勒克斯", Toast.LENGTH_SHORT).show();}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//第一步:獲取 SensorManager 的實(shí)例sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);//第二步:獲取 Sensor 傳感器類型Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);//第四步:注冊(cè) SensorEventListener sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);}@Overrideprotected void onDestroy() {super.onDestroy();//傳感器使用完畢,釋放資源if(sensorManager!=null){sensorManager.unregisterListener(listener);}} }===================傳感器類型=========================
? ?加速傳感器(Sensor.TYPE_ACCELEROMETER)
? ?磁場(chǎng)傳感器(Sensor.TYPE_MAGNETIC_FLELD)
? ?光線傳感器 (Sensor.TYPE_LIGHT )
?? 方向傳感器 (TYPE_ORIENTATION)
===================Values數(shù)值========================
?Accelerometer(加速傳感器)
?values[0] :沿x軸方向加速度
?values[1]: 沿 y 軸方向的加速度
?values[2] : 沿 z 軸方向的加速度,也就是重力加速度
?
Gravity(重力感應(yīng)器)
values數(shù)組中的三個(gè)元素分別代表x軸,y軸,z軸的重力大小
?
Light(光線傳感器)
values數(shù)組只有第一個(gè)元素values[0]有意義,表示光線的強(qiáng)度,最大值是120000.0f.
?
Gyroscope( 陀螺傳感器)
values,分別表示x,y,z軸的旋轉(zhuǎn)的角速度
?
Orientation(方向傳感器)
values[0] : 該值表示方位,也就是手機(jī)繞著z軸旋轉(zhuǎn)的角度. 0表示北(north),90表示動(dòng)(east),180表示南(south),270表示西(west)
values[1]:表示傾斜度. x 軸傾斜時(shí),該值變化,-180<= vaules[1] <= 180
values[2]: 表示沿y軸的滾動(dòng)角度,-90<=values[2] <=90
在android2.3 sdk中,并不推薦使用sensor.TYPE_ORIENTATION,values[0]值,有時(shí)會(huì)出現(xiàn)異常。官方推薦使用SensorManager.getOrientaion的方法來獲得正確的方向?
===================數(shù)值更新速度========================
? SENSOR_DELAY_FASTEST:?以最快的速度獲得傳感器數(shù)據(jù)
??SENSOR_DELAY_GAME: 適合與在游戲中獲得傳感器數(shù)據(jù)
??SENSOR_DELAY_NORMAL: 以一般的速度獲得傳感器數(shù)據(jù)
? SENSOR_DELAY_UI:適合于在ui空間中獲得數(shù)據(jù)
?
轉(zhuǎn)載于:https://www.cnblogs.com/woider/p/5348993.html
總結(jié)
以上是生活随笔為你收集整理的Android 光线传感器的调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 叫我大掌柜九龙城寨水果和鱼哪个好
- 下一篇: 20145105 《Java程序设计》第