SensorEventListener ios系统地图更新

监视传感器事件

要监视原始的传感器数据,你需要实现两个通过SensorEventListener接口暴露的回调方法:onAccuracyChanged()和onSensorChanged()。Android系统在任何发生下列事情的时候都会调用这两个方法:

1. 传感器精度的改变:

这种情况中,系统会调用onAccuracyChanged()方法,它提供了你要引用的发生精度变化的Sensor对象。精度使用以下四个状态常量之一来代表的:

SENSOR_STATUS_ACCURACY_LOW

SENSOR_STATUS_ACCURACY_MEDIUM

SENSOR_STATUS_ACCURACY_HIGH

SENSOR_STATUS_UNRELIABLE

2. 传感器报告新的值:

这种情况中,系统会调用onSensorChanged()方法,它提供了一个SensorEvent对象。SensorEvent对象包含了有关新的传感器数据的信息,包括:数据的精度、产生数据的传感器、产生数据时的时间戳、以及传感器记录的新的数据。

下列代码显示了如何使用onSensorChanged()方法来监视来自亮度传感器的数据。这个例子在一个TextView中显示原始的传感器数据:

publicclassSensorActivityextendsActivityimplementsSensorEventListener{privateSensorManager mSensorManager;privateSensor mLight;@Override publicfinalvoid onCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mSensorManager =(SensorManager)getSystemService(Context.SENSOR_SERVICE);mLight =mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);} @Overridepublicfinalvoid onAccuracyChanged(Sensor sensor,intaccuracy){ //Do something here if sensor accuracy changes.} @OverridepublicfinalvoidonSensorChanged(SensorEventevent){// The light sensor returns a singlevalue. //Many sensors return 3 values, one for eachaxis. floatlux=event.values[0];// Do something with this sensor value. }@Override

protected void onResume() {

super.onResume();

mSensorManager.registerListener(this, mLight,SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

protected void onPause() {

super.onPause();

mSensorManager.unregisterListener(this);

}

}

在这个例子中,在调用registerListener()方法时,指定了默认的数据延迟(SENSOR_DELAY_NORMAL)。数据延迟(或采样率)控制着传感器事件通过onSensorChanged()回调方法发送给你的应用程序的时间间隔。默认的数据延迟适用于监视典型的屏幕方向的变化,它所使用的时间延迟是200,000毫秒。你能够指定其他的数据延迟类型,如SENSOR_DELAY_GAME(20,000毫秒延迟)、SENSOR_DELAY_UI(60,000毫秒延迟)、或者是SENSOR_DELAY_FASTEST(0毫秒延迟)。Android3.0(APILevel 11)以后,你也能够使用一个绝对值(以毫秒的形式)来指定延迟。

你所指定的延迟只是建议性的延迟。Android系统和其他应用程序都能够修改这个延迟。作为最好的实践,你应该指定你所需要的最大延迟,因为系统通常会使用比你指定的要小的延迟(也就是说,你应该选择你的应用所需要的最低的采样率)。使用较大的延迟会降低处理器的负载,同时也因此降低了电量的损耗。

SensorEventListener ios系统地图更新

有没有公开的方法用于判断传感器框架把传感器事件发送给你的应用程序的频率;但是,你能够使用前后两个传感器事件的时间戳来计算采样率。一旦你设置了采样率(延迟)就不要改变。如果因为某些原因需要改变,那么就必须先注销然后在重新注册传感器监听器。

在这个例子中还要重点关注的是:使用onResume()和onPause()回调方法来注册和注销传感器监听事件。作为最好的实践,你始终应该在不需要的时候禁用传感器,尤其是在Activity被挂起的时候。如果不这样做,因为有些传感器有很大的电量需求,因此会很快的消耗掉电池电量。在屏幕关闭的时候,系统不会自动的禁用传感器。

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/337786.html

更多阅读

xp系统停止服务怎么办最终解决方法 xp系统停止服务

  相信使用xp系统的用户还是非常普及的,可是微软公司做出了决定windowsxp要停止服务。这个决定对很多xp用户也许是非常残忍的,当然,微软停止xp服务也有他的原因吧。那么如果停止服务的话又该怎么办呢?我们就要更换系统吗?来看看豆豆

手机wp8系统怎么样 wp8应用商店老抽风

手机wp8系统怎么样——简介现在满大街的安卓和ios系统,作为新兴系统wp8到底怎么样呢?手机wp8系统怎么样——方法/步骤手机wp8系统怎么样 1、1,流畅 必须也是最有亮点的地方,用过安卓系统的人都知道安卓程序开多了卡,使用时间长了卡,反正

怎么关闭win7自动更新 win7 关闭自动更新

怎么关闭win7自动更新——简介昨天小编刚安装完win7系统,把所有电脑驱动全部装好,直接关机下班,哪知道屏幕提示更新90个系统补丁且不能关机不能断电,可是我有急事啊!怎么办?果断硬关机,直接按关机键三秒,指示灯灭,人走起!怎么关闭win7自动更

iOS7系统有哪些新功能? 精 iphone4ios7精简系统

iOS7系统有哪些新功能? 精——简介2013年6月11号凌晨苹果发布新一代 iOS 7 操作系统,此次系统升级采用了全新的架构设计,颠覆了我们以往对 iOS 的认知。苹果官方将其描述为更加简洁,实用,愉悦的一代移动平台操作系统,并且在 iOS 系统历史

SBSettings设置使用教程(系统增强) ubuntu系统使用教程

越狱玩家应该都比较了解SBSettings这个iOS系统增强工具,它前身是BigBoss出品的BossPrefs,主要功能有:清理系统内存,快速注销,重启,关机以及进入安全模式等,隐藏桌面图标(比如不常用的系统自带软件),自定义飞行模式、蓝牙、Wi-fi、EDGE、自动横

声明:《SensorEventListener ios系统地图更新》为网友把酒临风分享!如侵犯到您的合法权益请联系我们删除