源碼簡介

本項目是一個Android精準計步開發的項目源碼,親測在小米.魅族.華為上可用。注意:本項目使用android studio開發,eclipse可能無法直接使用。
詳細使用博文請訪問:http://blog.csdn.net/linglongxin24/article/details/52868803
使用方法:
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) {

        }
    };

Android項目源碼精準計步開發小米魅族華為可用 Android項目源碼精準計步開發小米魅族華為可用

5條源碼討論
發表評論

您必須登錄才能評論.

4# linglongxin24 2016-10-31 上午11:50

我的原創:http://blog.csdn.net/linglongxin24/article/details/52868803

地板 linglongxin24 2016-10-31 上午11:46

節操呢?

板凳 linglongxin24 2016-10-31 上午11:21

哎,怎么偷我的項目呢??????

沙發 ShangWenBo 2016-10-30 下午2:28

怎么將這個文件導入Eclipse中啊

?2013-2019 JavaApk.com· 魯ICP備13032311號-1· Powered by WordPress· Theme by JavaApkTM · 網站地圖.19 queries in 0.080 seconds


竟彩足球比分直播