首页 理论教育 Android游戏开发|使用光线传感器的方法

Android游戏开发|使用光线传感器的方法

时间:2023-10-22 理论教育 版权反馈
【摘要】:在Android物联网设备中,使用光线传感器的基本流程如下。在获得相应的传感器的引用后可以来感应光线强度的变化,此时需要通过监听传感器的方式来获得变化,监听功能通过前面介绍的监听方法实现。在Android中注册传感器后,就说明启用了传感器。也就是说,当感应器发生变化时,这两个方法会一起被调用。光线传感器只需要values[0]的值,其他两个都为0。

Android游戏开发|使用光线传感器的方法

在Android物联网设备中,使用光线传感器的基本流程如下。

(1)通过一个SensorManager来管理各种感应器,要想获得这个管理器的引用,必须通过如下的代码来实现。

(2)在Android系统中,所有的感应器都属于Sensor类的一个实例,并没有继续细分下去,所以Android对于感应器的处理几乎是一摸一样的。既然都是Sensor类,那么怎么获得相应的感应器呢?这时就需要通过SensorManager来获得,可以通过如下的代码来确定要获得的感应器类型。

通过上述代码获得了光线感应器的引用。

(3)在获得相应的传感器的引用后可以来感应光线强度的变化,此时需要通过监听传感器的方式来获得变化,监听功能通过前面介绍的监听方法实现。Android提供了两个监听方式,一个是SensorEventListener,另一个SensorListener,后者已经在android API上显示过时了。

(4)在Android中注册传感器后,就说明启用了传感器。使用感应器是相当耗电的,这也是为什么传感器的应用没有那么广泛的主要原因,所以必须在不需要的时候及时关掉。在Android中通过如下的注销方法来关闭。

■ unregisterListener(SensorEventListenerlistener)。

■ unregisterListener(SensorEventListenerlistener,Sensor sensor)。

(5)使用SensorEventListener来具体实现,在Android物联网设备中有如下两个实现这个监听器的方法。

■ onAccuracyChanged(Sensor sensor,int accuracy):是反应速度变化的方法,也就是rate

变化时的方法。

■ onSensorChanged(SensorEvent event):是传感器值变化的相应的方法。(www.xing528.com)

读者需要注意的是,上述两个方法会同时响应。也就是说,当感应器发生变化时,这两个方法会一起被调用。上述方法中的accuracy值是4个常量,对应的整数如下。

■ SENSOR_DELAY_NORMAL:3。

■ SENSOR_DELAY_UI:2。

■ SENSOR_DELAY_GAME:1。

■ SENSOR_DELAY_FASTEST:0。

而类SensorEvent有4个成员变量,具体说明如下。

■ Accuracy:精确值。

■ Sensor:发生变化的感应器。

■ Timestamp:发生的时间,单位是纳秒。

■ Values:发生变化后的值,这个是一个长度为3数组

光线传感器只需要values[0]的值,其他两个都为0。而values[0]就是开发光线传感器所需要的,单位是:lux(光照度单位)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈