超精准的Android手机计步器开发_Android

亲测在小米.魅族.华为上可用,该app采用后台service计歩服务,所以只要app不被手机杀死在后台也是可以正常计歩的。上图:

1.需要在AndroidManifest.xml中添加权限

<!--计歩需要的权限-->
 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
 <uses-feature android:name="android.hardware.sensor.accelerometer" />
 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
 <uses-feature
 android:name="android.hardware.sensor.stepcounter"
 android:required="true" />
 <uses-feature
 android:name="android.hardware.sensor.stepdetector"
 android:required="true" />

2.检测手机是否支持计歩

 /**
 * 判断该设备是否支持计歩
 *
 * @param context
 * @return
 */
 @TargetApi(Build.VERSION_CODES.KITKAT)
 public static boolean isSupportStepCountSensor(Context context) {
 // 获取传感器管理器的实例
 SensorManager sensorManager = (SensorManager) context
  .getSystemService(context.SENSOR_SERVICE);
 Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
 Sensor detectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
 return countSensor != null || detectorSensor != null;
 }

3.功能使用

 private boolean isBind = false;
    private Messenger mGetReplyMessenger = new Messenger(new Handler(this));
    private Messenger messenger;
   /**
     * 开启计步服务
     */
    private void setupService() {
        Intent intent = new Intent(this, StepService.class);
        isBind = bindService(intent, conn, Context.BIND_AUTO_CREATE);
        startService(intent);

    }
    /**
     * 从service服务中拿到步数
     *
     * @param msg
     * @return
     */
    @Override
    public boolean handleMessage(Message msg) {
        switch (msg.what) {
            case Constant.MSG_FROM_SERVER:
                cc.setCurrentCount(10000, msg.getData().getInt("step"));
                break;
        }
        return false;
    }

    /**
     * 用于查询应用服务(application Service)的状态的一种interface
     * 更详细的信息可以参考Service 和 context.bindService()中的描述
     * 和许多来自系统的回调方式一样,ServiceConnection的方法都是进程的主线程中调用的
     */
    ServiceConnection conn = new ServiceConnection() {
        /**
         * 在建立起于Service的连接时会调用该方法,目前Android是通过IBind机制实现与服务的连接。
         * @param name 实际所连接到的Service组件名称
         * @param service 服务的通信信道的IBind,可以通过Service访问对应服务
         */
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            try {
                messenger = new Messenger(service);
                Message msg = Message.obtain(null, Constant.MSG_FROM_CLIENT);
                msg.replyTo = mGetReplyMessenger;
                messenger.send(msg);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }
      /**
         * 当与Service之间的连接丢失的时候会调用该方
         * 这种情况经常发生在Service所在的进程崩溃或者被Kill的时候调用
         * 此方法不会移除与Service的连接,当服务重新启动的时候仍然会调用 onServiceConnected()
         * @param name 丢失连接的组件名称
         */
        @Override
        public void onServiceDisconnected(ComponentName name) {
        }
    };

GitHub地址:https://github.com/linglongxin24/DylanStepCount

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Android手机计步器
, Android计算步数
Android测步数app
android计步器开发、精准计步器、android计步器、android计步器源码、android计步器原理,以便于您获取更多的相关知识。

时间: 2024-08-03 02:19:58

超精准的Android手机计步器开发_Android的相关文章

超精准的Android手机计步器开发

亲测在小米.魅族.华为上可用,该app采用后台service计歩服务,所以只要app不被手机杀死在后台也是可以正常计歩的.上图: 1.需要在AndroidManifest.xml中添加权限 <!--计歩需要的权限--> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRI

C#之Android手机App开发_Android

目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上.因此搞计算机的一听说手机应用开发,一个个都像着了魔似的,既然有那么多人对它感兴趣,那咱也跟着玩一玩.但是,本模块不是介绍如何用Java开发,而是全部用C#去实现. 为什么用C#去实现?原因很简单,目前手机市场经过多年的你争我斗,现在就剩下Android.iOS.Windows Phone还能互相斗狠,其他的统统都被打趴下找不着北了.但是,学Android应用开发要用Java.学iOS应

我是android手机平板开发厂商,有好用的程序保护芯片吗,最好开发简单。

问题描述 我是android手机平板开发厂商,有好用的程序保护芯片吗,最好开发简单. 我是android手机平板开发厂商,有好用的程序保护芯片吗,最好开发简单. 解决方案 推荐使用加密tf卡,我用过一款 LKT4208 加密tf卡,可将关键软件程序内嵌入tf卡中的加密芯片中,从根本上杜绝程序被破解可能,而且方便简单. 解决方案二: 谢谢楼上,您还在用TF卡吗?

Android手机软件开发 课程 教学 大纲

<专业考证培训及考证>课程教学大纲 课程编号:024015    授课学时: 80       学分数: 4    适用专业:通信技术 一.课程的性质和任务 课程的性质: <专业考证培训及考证>课程是通信技术专业的专业必修课.它面向软件设计与开发.软件技术支持以及软件测试三个岗位,主要讲解<Java程序设计>.<Android手机软件开发>等课程,在<Android软件开发>技术的基础上再加以提升,从而使学生能够更好地适应就业岗位. 课程的任务:

Android Wear计时器开发_Android

记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想法,但是按照目前对于Android Wear的架构了解来说,似乎有些困难.所以本系列文章我们就重写这个应用,带领大家进入Android Wear的世界. 本文不会长篇大论地讲解我们要开发的这款App的用途,因为我们在之前的系列文章已经深入了解过了.这么说吧,这是一个计时类应用,在比赛开始的时候开始执

C#之Android手机App开发

目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上.因此搞计算机的一听说手机应用开发,一个个都像着了魔似的,既然有那么多人对它感兴趣,那咱也跟着玩一玩.但是,本模块不是介绍如何用Java开发,而是全部用C#去实现. 为什么用C#去实现?原因很简单,目前手机市场经过多年的你争我斗,现在就剩下Android.iOS.Windows Phone还能互相斗狠,其他的统统都被打趴下找不着北了.但是,学Android应用开发要用Java.学iOS应

浅谈Android手机联系人开发之增删查改功能

最近在做手机联系人的功能模块的时候,遇到了很多的坑,在网上搜索的有一些所谓的最全的手机联系人开发的介绍还存在一些bug,所以我把我最近的项目心得和方法写下来,既能帮助大家减少了解android开发手机联系人的门槛,好,废话少说,接下来直奔主题. 一.深入浅出手机联系人的前奏(小米手机的data表跟模拟器的data表不一样) 1.手机联系人主要是对contacts2.db数据库表的操纵,这个数据库中有三个表是比较重要的,分别是data,raw_contacts,mimetyps这三个表.在下面的增

Android手机在开发调试时logcat不显示输出信息的办法

  问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出 问题原因:一些rom默认关闭logcat 问题说明:ddms中设备名字显示为问号不影响,即adb get-serialno显示为问号不影响. 解决方法: 1.需要root权限(部分rom不需要) 2.打开logcat,并设置level,执行命令如下(android 升级之后 adb 在 platform-tools中,不在tools中) adb s

Android抢红包助手开发全攻略_Android

背景:新年之际,微信微博支付宝红包是到处飞,但是,自己的手速总是比别人慢一点最后导致红包没抢到,红包助手就应运而生.需求:收到红包的时候进行提醒,然后跳转到红包的界面方便用户.思路:获取"读取通知信息"权限,然后开启服务监控系统通知,判断如果是微信红包就进行提醒(声音),然后跳转到红包所在的地方. 界面: 界面分为两部分,一部分是可以对App进行操作的,下面是一个可以滑动的界面,提示用户如何是软件正常工作,布局代码如下: <?xml version="1.0"