Android获取不到运动步数(踩坑)
Android获取不到运动步数(踩坑)
- 获取运动步数
- 某些手机获取不到步数
获取运动步数
使用SensorManager,也就是手机内置的传感器获取运动步数,通过该方法可获取到当前运动步数、开机后总运动步数、时间戳等数据
private SensorManager mSensorManager;private MySensorEventListener mListener;mListener = new MySensorEventListener();mSensorManager.registerListener(mListener,mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),SensorManager.SENSOR_DELAY_NORMAL);mSensorManager.registerListener(mListener,mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),SensorManager.SENSOR_DELAY_NORMAL);
上面代码分别获取两组数据,Sensor.TYPE_STEP_DETECTOR、Sensor.TYPE_STEP_COUNTER
Sensor.TYPE_STEP_DETECTOR:当前正在运动时返回1
Sensor.TYPE_STEP_COUNTER:返回开机以来当天总步数
class MySensorEventListener implements SensorEventListener {@Overridepublic void onSensorChanged(SensorEvent event) {System.out.println("step@@@:" + event.sensor.getType() + "--" + Sensor.TYPE_STEP_DETECTOR + "--" + Sensor.TYPE_STEP_COUNTER);if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {if (event.values[0] == 1.0f) {mStepDetector++;}} else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {mStepCounter = (int) event.values[0];}String desc = String.format("设备检测到您当前走了%d步,自开机以来总数为%d步", mStepDetector, mStepCounter);mStepTV.setText(desc);}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {Log.d("onAccuracyChanged", String.valueOf(accuracy));}}
结果数据通过mListener回调处理
需要特别注意:当手机关机重启后,运动步数会清零重置,如需准确获取当天的运动步数需做持久化处理
某些手机获取不到步数
在使用SensorManager获取步数时发现部分手机可以获取到步数,一部分手机获取不到
是因为Android10以后需要动态获取Manifest.permission.ACTIVITY_RECOGNITION权限才能正常回调步数
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACTIVITY_RECOGNITION) != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, 1);} else {Toast toast = Toast.makeText(this, "已授权", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();}}
Android获取不到运动步数(踩坑)相关推荐
- android代码混淆个人总结及踩坑
android代码混淆个人总结及踩坑 前言 公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多或少有过一些接触,通过对混淆文件的配置从而将代码 ...
- android sharesdk qq授权失败,项目踩坑之Share SDK指定平台分享
现在很多应用都包含了社会化分享的功能,最近由于项目需要,所以亲自去踩了踩Mob社会化分享的坑.接下来就介绍一下怎样集成Share SDK吧!!! 一.集成ShareSDK的步骤: 1)注册ShareS ...
- android小程序_小程序踩坑记
小程序踩坑记 希望这个文章能尽量记录下小程序的那些坑,避免开发者们浪费自己的生命来定位到底是自己代码导致的还是啥神秘的字节跳变原因. 前记 小程序大多数坑是同一套代码在不同平台上表现不一致导致的,微信 ...
- android usb没有读写节点,2019踩坑无数含泪写下最新教程系列(三)树莓派挂载android(树莓派通过usb读取手机里面档案)...
2019踩坑无数含泪写下最新教程系列(三)树莓派挂载android(树莓派通过usb读取手机里面档案) STEP1: Install packages Install support for MTP: ...
- 微信小程序——获取用户的运动步数
程序获取用户信息步骤 点击参考微信文档中的授权 首先程序先向用户申请访问哪些权限 用户做出选择后返回给程序 程序携带权限访问服务器 如果用户允许则返回信息 如果用户为允许则不返回 自定义函数getUs ...
- android原生调用nextjs方法,nextjs踩坑
Next.js踩坑 几乎一整年没咋写文章,主要是懒,加上工作也挺忙.但是想趁着年底发一篇,希望明年更勤奋一点.其实不是没东西写,就是想深入一个东西还是很困难的,要查各种资料,最终还是懒就是了. nex ...
- android settext方法,Android中EditText setText方法的踩坑实战
1.平平常常中就这样开始 某一天,我准备做一个搜索功能,这个搜索功能呢大概是在主活动A中,用EditText接收输入,当EditText监听到输入框中内容有变化,跳转到活动B中,活动B中准备有搜索历史 ...
- weex-eros+vue Android拍照并预览图片踩坑【小白向】
[TOC] 最近做一个移动端的手机拍照预览,碰了不少墙,但还是遇到好心人帮助,成功预览.感谢"小豬仔"~ 开干之前,请先阅读 Weex-Eros文档 和 Vue教程 Windows ...
- iPhone记步和Android计步,手机中运动步数是如何计算的?
微信运动每天都记录着你走路的步数,他会形成榜单,走的多收到很多赞,走的少则无人关注,如果你走到第一,你的照片将霸占排行榜封面. 所以一段时间,每个人为了霸占封面疯狂走路.刷步,然而有时我们却发现你跟好 ...
最新文章
- python数据转换函数_常用python数据类型转换函数总结
- # Qt程序版本号使用
- mybatis02映射动态sql关联查询spring整合mybatis
- 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法
- Label Assign综述:提升目标检测上限
- css expressionr,CSS Expression讲解
- Netflix CEO:入华谈判进展顺利 或很快获牌照
- 异常 try catch finally return 执行关系 MD
- PAT(乙级)1009
- 2014-11-25nbsp;11:26
- 《Java8实战》笔记(12):新的日期和时间API
- 1445.32php,nginx实现mysql的负载均衡
- 译]bootstrap-select (selectpicker)方法
- 51单片机计算器_基于51单片机的倒计时温度检测报警器
- HarmonyOS 开发App详细步骤
- 11. Django基础:应用及分布式路由
- vmd与ovito的对比
- AUTOCAD——比例缩放
- url怎么隐藏html后缀,去除url后缀(.html,.jsp等)的有效方法
- win7美化_为Windows笔记本外接显示器!附实用工具/桌面美化折腾指南