Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arturdev/SOMotionDetector
Simple library to detect motion type (walking, running, automotive) and count users steps. This library will make motion detection much more easily.
https://github.com/arturdev/SOMotionDetector
Last synced: about 1 month ago
JSON representation
Simple library to detect motion type (walking, running, automotive) and count users steps. This library will make motion detection much more easily.
- Host: GitHub
- URL: https://github.com/arturdev/SOMotionDetector
- Owner: arturdev
- License: mit
- Created: 2014-03-07T08:14:20.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-04T18:48:27.000Z (6 months ago)
- Last Synced: 2024-05-22T02:28:41.680Z (4 months ago)
- Language: Objective-C
- Homepage:
- Size: 633 KB
- Stars: 1,059
- Watchers: 49
- Forks: 150
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - SOMotionDetector - Simple library to detect motion. Based on location updates and acceleration. (Hardware / Location)
- awesome-ios-star - SOMotionDetector - Simple library to detect motion. Based on location updates and acceleration. (Hardware / Location)
README
SOMotionDetector
================Simple library to detect motion for iOS by arturdev .
Based on location updates and acceleration.
###Requierments
iOS > 6.0Compatible with iOS 9
Works on all iOS devices (i.e. not need M7 chip)
This demo project also demonstrates how to use this library to relaunch the app from killed state.
USAGE
=====
Copy SOMotionDetector folder to your project.Link CoreMotion.framework, CoreLocation.framework.
Import "SOMotionDetector.h" file and set SOMotionDetector's callbacks
```ObjC
#import "SOMotionDetector.h//...
[SOMotionDetector sharedInstance].motionTypeChangedBlock = ^(SOMotionType motionType) {
//...
};
[SOMotionDetector sharedInstance].locationChangedBlock = ^(CLLocation *location) {
//...
};[SOMotionDetector sharedInstance].accelerationChangedBlock = ^(CMAcceleration acceleration) {
//...
};
```If you need to know when location updates were automatically paused due to your app running in the background...
```ObjC
[SOMotionDetector sharedInstance].locationWasPausedBlock = ^(BOOL changed) {
//...
};
```###NOTE!
To Support iOS > 8.0 you must add in your info.plist file one of the following keys:
`NSLocationAlwaysUsageDescription`
`NSLocationWhenInUseUsageDescription`To enable background location updates in iOS > 9.0 you must set `allowsBackgroundLocationUpdates` to `YES`
```ObjC
[SOLocationManager sharedInstance].allowsBackgroundLocationUpdates = YES;
```You are done!
Now to start motion detection just call
```ObjC
[[SOMotionDetector sharedInstance] startDetection];
```To stop detection call
```ObjC
[[SOMotionDetector sharedInstance] stopDetection];
```To start step counter call
```ObjC
[[SOStepDetector sharedInstance] startDetectionWithUpdateBlock:^(NSError *error) {
//...
}];
```
###Detecting motion types
```ObjC
typedef enum
{
MotionTypeNotMoving = 1,
MotionTypeWalking,
MotionTypeRunning,
MotionTypeAutomotive
} SOMotionType;
```CUSTOMIZATION
=============
```ObjC/**
* Set this parameter to YES if you want to use M7 chip to detect more exact motion type. By default is No.
* Set this parameter before calling startDetection method.
* Available only on devices that have M7 chip. At this time only the iPhone 5S, the iPad Air and iPad mini with retina display have the M7 coprocessor.
*/
@property (nonatomic) BOOL useM7IfAvailable;/**
*@param speed The minimum speed value less than which will be considered as not moving state
*/
- (void)setMinimumSpeed:(CGFloat)speed;/**
*@param speed The maximum speed value more than which will be considered as running state
*/
- (void)setMaximumWalkingSpeed:(CGFloat)speed;/**
*@param speed The maximum speed value more than which will be considered as automotive state
*/
- (void)setMaximumRunningSpeed:(CGFloat)speed;/**
*@param acceleration The minimum acceleration value less than which will be considered as non shaking state
*/
- (void)setMinimumRunningAcceleration:(CGFloat)acceleration;```
### Installation with CocoaPods
[CocoaPods](http://cocoapods.org) is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries installation in your projects.
#### Podfile
```ruby
pod "SOMotionDetector"
```LICENSE
SOMotionDetector is under MIT License (see LICENSE file)## Author
arturdev, [email protected]
matghazaryan, [email protected]