• Stars
    star
    1,568
  • Rank 29,857 (Top 0.6 %)
  • Language
    Java
  • License
    Do What The F*ck ...
  • Created about 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Android精准计步器

Android精准计步开发

亲测在小米.魅族.华为上可用

下载体验

万分感谢项目中使用两位大神的算法

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) {

        }
    };

More Repositories

1

NotificationUtil

全新的Android通知栏,已抛弃setLatestEventInfo,兼容高版本
Java
255
star
2

WelcomeVideoPager

Android酷炫欢迎页播放视频,仿蚂蜂窝自由行和慕课网
Java
223
star
3

ViewPagerFragmentLazyLoad

Android中ViewPager+Fragment懒加载问题解决方案Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
Java
202
star
4

JDBCUtil

玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
Java
115
star
5

VRDevelopVideo

【Android开发VR实战】二.播放360°全景视频
Java
101
star
6

CircleMenu

Android属性动画应用超简单代码打造酷炫扇形(卫星),圆形菜单
Java
92
star
7

VRDevelopImage

【Android开发VR】一.给用户呈现一个360°全景图片
Java
82
star
8

GridViewAddImage

Android GridView扩展仿微信微博发布动态添加删除图片
Java
72
star
9

RecyclerViewDemo2

精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件
Java
67
star
10

BaiduProgressBar

仿百度加载动画,一种优雅的Loading方式
Java
67
star
11

MPermissions

Android6.0M权限实战,轻量级封装
Java
49
star
12

AnimationDemo

Android基础动画,组合动画,帧动画,布局动画,Activity跳转动画
Java
39
star
13

AnimatorDemo

Android属性动画上手实现各种动画效果
Java
31
star
14

ARDevelopDemo

ARDevelopDemo
Java
30
star
15

ServiceTask

Android中Service+Notification断点续传下载
Java
29
star
16

StepCircleStaffView

Android自定义View和属性动画完美结合,创造出酷炫圆环动画,带标尺和进度
Java
28
star
17

VideoCamera

很好的Android录制视频代码可设置清晰度大小和时长
Java
25
star
18

VRDevelopGame

【Android开发VR】三.开发一个寻宝类VR游戏TreasureHunt
Java
25
star
19

ListViewUpdate

ListView万能适配器,ListView局部更新
Java
23
star
20

AndroidPicker_LikeiOS

Android仿IOS各类选择器
Java
19
star
21

TablayoutRedDot

TabLayout设置小红点
Java
16
star
22

SQLite

SQLite
Java
14
star
23

TouchFingerImageView

仿去哪儿点击缩放显示指纹效果
Java
14
star
24

LauncherView

Android仿桌面拖动、排序、合并文件夹
Java
9
star
25

LoadingDialog

加载等待对话框
Java
9
star
26

RecyclerViewDemo

Android用RecyclerView打造仿美团分类界面
Java
8
star
27

LambdaTest

Android中如何使用Lambda表达式高效开发
Java
6
star
28

VersionUpdate

Android版本自动升级框架
Java
6
star
29

CustomView

Android中常用的自定义View
Java
5
star
30

SearchVIew

【Android自定义View实战】之超简单SearchVIew
Java
4
star
31

AndroidFastDevFrame

Java
4
star
32

sql

从零开始学习mysql与oracle数据库
PLSQL
3
star
33

CustomTitleBar

自定义标题栏
Java
3
star
34

AndroidNotification

Android 通知栏Notification的全面整合学习
Java
2
star
35

FastDev

Android快速开发框架第二版
Java
2
star
36

UncaughtExceptionSendEmail

Java
2
star
37

ChatDemoUI3.0

环信demo
Java
1
star
38

ActivityLaunchMode

深入Activity,Activity启动模式LaunchMode完全解析
Java
1
star
39

OffingHarbor

最新版FindViewById插件添加ORIGINAL模式->即生成的id变量名和layout配置文件中的一致 由DylanAndroid制作
Java
1
star
40

MyTimePick

仿滴滴打车时间选择器
Java
1
star
41

FullScreenDialog

可以宽度全屏的对话框
Java
1
star
42

SQLInjection

如何防止SQL注入
Java
1
star