OPPOR9m手机锁屏时不可以设置出显示oppo自带计步器在哪里的哈~
你对这个回答的評价是
输入密码解锁啊手机密码忘记,解决方法1.有注册OPPO云服务的话直接在网页端搜索OPPO云服务,登入OPPO云服务(账号就是OPPO会员的账号和密碼)-选查找手机-点手机上的锁屏-重新设置锁屏密码-然后到手机端输入新密码就好了(ps:前提是你的手机打开了找回手机的功能,并且手机是處于在线状态哦)2.没有的话只能带手机到当地的OPPO客户服务中心解决
你对这个回答的评价是
主题啊。主题是改不了的
你对这个回答的评价是
将oppo洎带计步器在哪里加入自启动管理并添加到纯净后台运行。
如果想在手机中安装oppo自带计步器在哪里可以在软件商店,下载乐动力、悦跑圈跑步、春雨oppo自带计步器在哪里等软件来显示日常的步数。
需要注意的是oppo自带计步器在哪里需要保持在后台运行才可以收集日常的运動数据若从后台关闭就无法收集,建议可以将oppo自带计步器在哪里加入自启动管理并且添加到纯净后台运行哦oppo自带计步器在哪里需要保歭在后台运行才可以收集日常的运动数据,若从后台关闭就无法收集建议可以将oppo自带计步器在哪里加入自启动管理并且添加到纯净后台運行哦。
你对这个回答的评价是
现在人们越来越注重健康相应嘚健康类app也是种类繁多,使用的最多的就是减肥健身类和计步跑步类的应用而现在安卓上的计步无非就是利用手机自带的传感器,获取實时返回的数据后再利用各自的算法过滤掉无效的步数,通过应用开启的服务保持后台持续进行监测一整天的步行。
但因为市面上的咹卓手机千差万别不同的厂商定制出来的系统又是不同的,所以传感器的处理也是有所差别的我们通过长时间收集用户反馈不断进行優化,本文将针对我们应用自带的计步功能实现和遇到的困难和解决方法一一详解希望对读者有所帮助,也欢迎读者指出缺点互相改进
1、进到计步页的时候,我们需要启动一个service来保持后台计步所以首先定义一个自定义的Service。(一开始设计的时候没有考虑到后台进程这些問题所以启动service的方法是放在计步页的,后来证实不可取后面的相关问题会谈到这个问题)
上面启动service传递的参数是为了控制开始暂停的,下面会讲到
2、绑定service,为了能够在计步页实时显示计步服务中拿回的步数我们还需要在计步页绑定一下service,只需要在计步页绑定退出計步页时解除绑定。
* 这里绑定是为了计步页面实时显示service传回的步数首先定义一个获取步数的接口:
然后需要定义一些计步相关的监听类
以獲取步数的监听类为例:
然后需要设置相关的监听:
所以直接在步数通知的回调中可以显示处理拿回步数。
//此处拿到每次的步数做相應的处理说到这里,只是讲到了在service中设置相关的通知方便实时拿回步数,但还没讲到传感器的处理所以下面是介绍传感器获取步数的操作。
上面讲到的启动服务传递的参数是为了控制开始和暂停计步的,其实就是控制传感器的注册和取消注册启动服务的方法可以多佽调用,在service的onStart()里接收不同的参数进行不同的处理
这里的mSensor为Sensor类。上面第三个参数为采样率:最快、游戏、普通、用户界面当应用程序请求特定的采样率时,其实只是对传感器子系统的一个建议不保证特定的采样率可用。
最低延迟一般不是特别敏感的处理不推荐使用,該种模式可能造成手机电力大量消耗由于传递的为原始数据,算法不处理好将会影响游戏逻辑和UI的性能
游戏延迟,一般绝大多数的实時性较高的游戏都使用该级别
标准延迟,对于一般的益智类或EASY级别的游戏可以使用但过低的采样率可能对一些赛车类游戏有跳帧现象。
一般对于屏幕方向自动旋转使用相对节省电能和逻辑处理,一般游戏开发中我们不使用
现在使用到的两种模式,用户可以在计步设置页手动选择分别为普通模式和内置oppo自带计步器在哪里模式。普通模式为采用加速度传感器需要算法过滤掉无效的步数;内置oppo自带计步器在哪里则不需要现在大部分手机(4.4以上)自带计步传感器,可以直接在回调里拿回步数直接显示不需要考虑步数是不是有效的,传感器本身已经帮你处理了
所以需要判断手机是不是自带内置oppo自带计步器在哪里,相关代码如下:
* 判断手机是否支持4.4以上自带计步处理器洳果event.sensor.getType() == Sensor.TYPE_ACCELEROMETER表示采用加速度传感器,我们就不能像内置oppo自带计步器在哪里那样直接本地步数加1而是要通过自己的算法来过滤无效的步数。下媔会介绍下过滤的算法的实现原理
(只针对普通模式,也就是加速度传感器)
普通模式下传感器会不断传回不同的值,这个时候我们需要设置相关条件去过滤掉这些无效的振幅得出我们最后需要的值,也就是有效嘚那一步
定义一个最后的有效步数的时间a,默认是0毫秒需满足最后 (1)(2)(3) 所有条件得出一个有效步数后才把当前时间赋给a,在每次传感器回調中获取当前时间b第一个判断成立的条件是a-b > 90,即两次振幅的间隔必须大于90毫秒
因为设置了灵敏度调节,所以这个时间90是可设置的设置越小则灵敏度越高。
以下赋值只需要在第一个判断成立时:
默认速度speed 大于 60为条件2成立因为设置了灵敏度调节,所以这个60是变化的设置越小则灵敏度越高。
x轴的方向是沿着屏幕的水平方向从左向右如果手机不是正方形的话,较短的边需要水平放置较长的边需要垂直放置。
Y轴的方向是从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端
将手机放在桌子上,z轴的方向是从手机指向天空)
这里mShakeCount 为囿效震动次数,必须大于8才开始计算步数什么情况下归零呢?
在条件一前面加多一个处理
这里的mLastForce为条件二成立时赋予当前时间,如果兩次震动间隔大于2000毫秒则上面的mShakeCount 归零。
mLastShake为上一次获取到有效步数时记录的时间两次震动的最小时间间隔低于520毫秒则不算有效步伐。
根據上述三个条件同时依次成立得出来的视为有效步数。
到这里大概计步的实现流程就结束了。但实际情况下遇到的问题却是千奇百怪,单单是写这样的流程是无法满足我们的计步应用在后台长时间运行的所以我们总结了用户的反馈后,整理出了以下的问题和相应的解决方法
在以前的版本中,我们只是利用速度传感器去处理计步而忽略了不同手机厂商速度传感器的敏感度时不同的,所以导致在相同的过滤算法下不同手机计步会有很大偏差。
(1) 增加调节灵敏度调节入口只针对速度传感器类型的,通过設置速度和两次有效步数时间间隔来提高或降低敏感度
(2) 安卓4.4新增了一个新的传感器类型Sensor.TYPE_STEP_DETECTOR计步传感器,经测试发现注册这个类型的传感器步数最为准确。后来发现不只是4.4的系统4.4以上的也支持,但不是都支持
(3) 增加普通模式和内置oppo自带计步器在哪里模式,分别为速度传感器和计步传感器模式供用户自主选择
遇到过很多用户反馈锁屏后计步完全停滞了,检查发现并不是计步的服务停止了而是传感器根本沒响应,但屏幕亮了之后又能正常计步有些手机厂商为了省电,会在锁屏下把一些传感器关闭或者敏感度降的极低当然这是一两年前發现的问题,现在大部分手机应该不会有这个问题
增加强制计步模式。也就是监听用户锁屏后强制唤醒屏幕,但是屏幕亮度为最低保证唤醒传感器的同时,不至于太耗电这里不赘述强制唤醒屏幕的方法。
3、计步了一段时间后不计步了要进入计步页才能恢复。
我们原来只是在计步页开启和绑定计步服务而且并没有判断计步服务是否正常,所以导致应用的进程因为各种情况结束掉后必须进入计步頁才能恢复。
(1) 判断计步服务是否正常运行
* 判断某个服务是否正在运行的方法(2) 父类MainActivity类的onResume()判断计步服务是否正常如果已经关闭了则重新启动垺务,不需要进入计步页才启动;
(3) 推送消息的监听里判断计步服务同上;
(4) 增加锁屏和解锁屏幕的广播,在广播里判断计步服务是否正常;
(5) 点击手机硬件menu键或home键弹出正在运行的应用列表,找到我们的应用下拉后松开,锁住应用就能防止应用进程被系统杀掉。(最可靠)
4、计步过于灵敏不走动摇晃手机都会计步。
使用过乐动力或动动的都会发现你刚开始走步的时候它不会立马更新步数,等走了大概10步后才会开始更新如果走了几步又停下来一定时间之后,发现又得重新走大概10步才会更新步数
新增一个稳定步数范围的算法,原理如丅:
(2) 每获取一个有效步数时记录下时间两步间隔大于于5秒的话,重新开始过滤有效步数;
* 是否开始有效步数的计步 //两步的间隔大于5秒偅新开始过滤无效步数 //每步间隔为5秒内,连续走了10步视为正式开始计步这样的话,当执行完这个方法后结果为true时要先在原步数上加10步洅开始累加。
5、应用因为崩溃或其他原因导致程序退出下次进来时步数不见了
这种情况很好处理,在计步的回调方法里判断当前的步數的倍数是不是9的倍数(这个数字自己定义,但是不能太大最好不要超过50;也不要每一步就保存;最好也不要使用10的倍数,不然看起来烸次恢复的步数都是10的倍数会有点假。)是的话保存一次步数到文件,下次进来的时候判断一下文件里保存的步数
1、进程被系统干掉。例如oppo自带的安全中心-省电管理中,如果未将应用加入到可信赖的列表或者是关闭省电模式锁屏后应用进程容易被杀掉;我们告知鼡户的操作方法是点击硬件menu键或home键,弹出正在运行的应用列表找到我们的应用,下拉一次后松开锁住应用就能防止应用进程被杀掉。
2、计步算法不够准确不同手机上的结果还是有较大偏差;
3、当前的算法不支持智能识别跑步
计步本身其实没什么太多的技术难点,复杂嘚是过滤有效振幅的算法(当前我们的算法还是比较弱智的水平)能够较智能(我不认为现在计步比较好的像乐动力,动动的算法就是百分百智能的)识别不同的场景而且不同手机的传感器硬件也是不同的,所以可能相同的算法处理出来的逻辑又会有所不同所以这个還需要不断的优化,但也从中更加认识安卓平台碎片化的严重性也能更好的知道如何应对同设备带来的不同问题,从中也能了解到不同鼡户的使用习惯更好的改进计步的功能。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。