检查移动或静止的应用程序的状态

时间:2017-12-15 11:38:06

标签: react-native react-native-android react-native-ios

我希望跟踪我的应用状态,即app正在移动或静止,我正在使用此模块进行定位 https://github.com/mauron85/react-native-background-geolocation

用于检查我使用此功能的位置状态

 BackgroundGeolocation.on('stationary', (stationaryLocation) => {
      console.log("stationaryLocation:"+JSON.stringify(stationaryLocation))
    });

但是当我静止时它没有显示任何反应,任何人都可以给我建议如何解决这个问题。 任何帮助非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用CMMotionActivityManager来跟踪此情况,而不是使用GeoLocation。

public func getCurrentActivity(onRun:@escaping(_ activity:String?) - > Void){

    if(CMMotionActivityManager.isActivityAvailable()){

        let mainQ = OperationQueue.main

        self.activityManager?.startActivityUpdates(to: mainQ, withHandler: { (data: CMMotionActivity!) -> Void in

            DispatchQueue.main.async(execute: {

                var action = ""
                if(data.stationary == true){
                    action = "Stationary"
                } else if (data.walking == true){
                   action = "Walking"
                } else if (data.running == true){
                    action = "Running"
                } else if (data.automotive == true){
                    action = "Automotive"
                } else if (data.cycling == true){
                    action = "cycling"
                } else {

                    action = "Stationary"
                }

                onRun(action)

            })
        })
    }
}