这篇文章主要介绍了机器人编程之光线传感器用法,结合实例形式分析了机器人光线传感器的功能、实现步骤与相关注意事项,并给出了相关演示示例,需要的朋友可以参考下
本文实例讲述了机器人编程之光线传感器用法。分享给大家供大家参考,具体如下:
机器人手机自带光线传感器,通常我们手机的屏幕自动亮度都是用光线传感器来实现的。该传感器在前置摄像头附近,此外,还有一个距离传感器。这里主要讲解如何使用机器人手机的光线传感器。
获得感应器服务
机器人开发中要使用光线传感器,需要先获得系统传感器服务语境。传感器_服务,获得方法如下:
传感器管理器senser manager=(传感器管理器)getsystem service(上下文.传感器_服务);
获得光线传感器
传感器管理器是系统传感器服务,是系统所有传感器的管理器。通过它,我们获得制定类型的传感器,获得光线传感器的方法如下:
传感器传感器=传感器管理器。getdefaultsensor(传感器.TYPE _ LIGHT);
代码中传感器。类型_光是指光线传感器。
传感器中还有许多其他的传感器,这里暂不讨论。
编写监听器
有了传感器对象之后,我们需要对该感应器进行监听,使用SensorEventListener接口,主要有onSensorChanged()和onAccuracyChanged()这两个方法,代码如下:
SensorEventListener listener=new SensorEventListener(){
@覆盖
公共void onAccuracyChanged(传感器传感器,int精度){
//当传感器精度发生变化时
}
@覆盖
公共void onSensorChanged(传感器事件事件){
//当传感器监测到的数值发生变化时
}
};
注册监听器
接下来我们还需要调用传感器管理器的注册侦听器()方法来注册SensorEventListener才能使其生效,注册侦听器()方法包含三个参数:SensorEventListener实例,传感器的实例和传感器输出信息更新速率。
传感器输出信息更新速率有:
传感器_延迟_用户界面
传感器_延迟_正常
传感器_延迟_游戏
传感器_延迟_最快
总共四种值可选,它们的更新速率是依次递增的。
注册SensorEventListener的代码如下:
传感器经理。注册监听器(监听器,传感器,传感器管理器.传感器_延迟_正常);
注销监听器
最后,当程序退出或传感器使用完毕时,一定要调用注销侦听器()方法将使用的资源释放掉,如下所示:
传感器管理器。注销监听程序(监听器);
DEMO示例:
包com。测试。传感器。光;
导入安卓。app。活动;
导入安卓。内容。语境;
导入安卓。硬件。传感器;
导入安卓。硬件。传感器事件;
导入安卓。硬件。sensoreventlistener
导入安卓。硬件。传感器管理器;
导入安卓。OS。捆绑;
导入安卓。小部件。textview
公共类主要活动扩展活动{
//感应器管理器
私有传感器管理器
//光线亮度
私有TextView灯光
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
//当前活动的内容是一个文本视图
light=新文本视图(这个);
设置内容视图(灯光);
//获得感应器服务
传感器管理器=(传感器管理器)getsystem服务(上下文.传感器_服务);
//获得光线感应器
传感器传感器=传感器管理器。getdefaultsensor(传感器.TYPE _ LIGHT);
//注册监听器
sensorManager.registerListener(侦听器,传感器传感器管理器.传感器_延迟_正常);
}
//活动被销毁
@覆盖
受保护的void onDestroy() {
超级棒。on destroy();
//注销监听器
if (sensorManager!=null) {
传感器管理器。注销监听程序(监听器);
}
}
//感应器事件监听器
private SensorEventListener listener=new SensorEventListener(){
//当感应器精度发生变化
@覆盖
公共void onAccuracyChanged(传感器传感器,int精度){
}
//当传感器监测到的数值发生变化时
@覆盖
public void onSensorChanged(sensor event事件){
//值数组中的第一个值是当前光线强度。
浮点值=event . values[0];
Light.setText('当前亮度'值' LX(lux)');
}
};
}
备注:开发使用光传感器不需要声明Android Manifest权限。
另外,对于某些程序,在改变当前程序的屏幕亮度时,可以考虑加入光线传感器的判断。
因为大部分这类节目,都会有这样的问题。当屏幕亮度设置为一个值时(在非亮度级模式下),设置为自动亮度级模式时无效。
更多对Android相关内容感兴趣的读者,请查看我们的专题:《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》和《Android资源操作技巧汇总》。
希望这篇文章对大家的Android编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。