Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nisrulz/sensey
:zap: [Android Library] Play with sensor events & detect gestures in a breeze.
https://github.com/nisrulz/sensey
android android-library chop-detection detect-gestures gesture-detection handwave-detection libraries light-detection movement-detection proximity-sensor sensor shake-detection wave-detection wrist-twist-detection
Last synced: 3 days ago
JSON representation
:zap: [Android Library] Play with sensor events & detect gestures in a breeze.
- Host: GitHub
- URL: https://github.com/nisrulz/sensey
- Owner: nisrulz
- License: apache-2.0
- Created: 2015-11-12T06:58:21.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-07-07T23:34:36.000Z (5 months ago)
- Last Synced: 2024-12-03T15:07:26.878Z (10 days ago)
- Topics: android, android-library, chop-detection, detect-gestures, gesture-detection, handwave-detection, libraries, light-detection, movement-detection, proximity-sensor, sensor, shake-detection, wave-detection, wrist-twist-detection
- Language: Java
- Homepage:
- Size: 36.4 MB
- Stars: 2,671
- Watchers: 73
- Forks: 268
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-android - Sensey - Detecting gestures in a snap. (Libraries / Other)
- awesome-android-libraries - sensey
- awesome-android - Sensey - Detecting gestures in a snap. (Libraries / Other)
- awesome-list - nisrulz/sensey - :zap: [Android Library] Play with sensor events & detect gestures in a breeze. (Java)
- awesome-github-android-ui - sensey - 手势交互Android库 (手势操作)
README
Sensey
Android library which makes playing with sensor events & detecting gestures a breeze.
The library is built for simplicity and ease of use. It eliminates most boilerplate code for dealing with setting up sensor based event and gesture detection on Android.
Also featured in [Awesome Android Newsletter
#Issue 5
,
#Issue 21
],
Codepath's Must Have Libraries
,
COBE’s Top 5 Android Libraries — September 2016
,
Best Android Libraries for Developers
,
DZone
,
Changelog Weekly Issue #115
### Screenshot of sample app
![sc1](img/sc1.png) ![sc2](img/sc2.png)
# Supported gestures/events
| Gesture | Methods | Usage |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Flip | onFaceUp
onFaceDown | [Link](https://github.com/nisrulz/sensey/wiki/Usage#flip) |
| Light | onDark
onLight | [Link](https://github.com/nisrulz/sensey/wiki/Usage#light) |
| Orientation | onTopSideUp
onBottomSideUp
onLeftSideUp
onRightSideUp | [Link](https://github.com/nisrulz/sensey/wiki/Usage#orientation) |
| PinchScale | onScale
onScaleStart
onScaleEnd | [Link](https://github.com/nisrulz/sensey/wiki/Usage#pinchscale) |
| Proximity | onNear
onFar | [Link](https://github.com/nisrulz/sensey/wiki/Usage#proximity) |
| Shake | onShakeDetected
onShakeStopped | [Link](https://github.com/nisrulz/sensey/wiki/Usage#shake) |
| Wave | onWave | [Link](https://github.com/nisrulz/sensey/wiki/Usage#wave) |
| Chop | onChop | [Link](https://github.com/nisrulz/sensey/wiki/Usage#chop) |
| WristTwist | onWristTwist | [Link](https://github.com/nisrulz/sensey/wiki/Usage#wristtwist) |
| Movement | onMovement
onStationary | [Link](https://github.com/nisrulz/sensey/wiki/Usage#movement) |
| SoundLevel | onSoundDetected | [Link](https://github.com/nisrulz/sensey/wiki/Usage#soundlevel) |
| RotationAngle | onRotation | [Link](https://github.com/nisrulz/sensey/wiki/Usage#rotationangle) |
| TiltDirection | onTiltInAxisX
onTiltInAxisY
onTiltInAxisZ | [Link](https://github.com/nisrulz/sensey/wiki/Usage#tiltdirection) |
| Scoop | onScooped | [Link](https://github.com/nisrulz/sensey/wiki/Usage#scoop) |
| PickupDevice | onDevicePickedUp
onDevicePutDown | [Link](https://github.com/nisrulz/sensey/wiki/Usage#pickupdevice) |
| Steps | stepInformation | [Link](https://github.com/nisrulz/sensey/wiki/Usage#steps) |
| TouchType | onDoubleTap
onScroll(direction)
onSingleTap
onSwipeLeft
onSwipeRight
onLongPress
onTwoFingerSingleTap
onThreeFingerSingleTap | [Link](https://github.com/nisrulz/sensey/wiki/Usage#touchtype) |# Changelog
Starting with `1.0.1`, Changes exist in the [releases tab](https://github.com/nisrulz/sensey/releases).
# Including in your project
Sensey is available in the Jcenter, so getting it as simple as adding it as a dependency
```gradle
implementation 'com.github.nisrulz:sensey:{latest version}'
```where `{latest version}` corresponds to published version in [ ![Download](https://api.bintray.com/packages/nisrulz/maven/com.github.nisrulz%3Asensey/images/download.svg) ](https://bintray.com/nisrulz/maven/com.github.nisrulz%3Asensey/_latestVersion)
# Simple example
- To initialize Sensey under your `onCreate()` in the activity/service, call
```java
Sensey.getInstance().init(context);
```- To stop Sensey, under your `onDestroy()` in the activity/service, call
```java
// *** IMPORTANT ***
// Stop Sensey and release the context held by it
Sensey.getInstance().stop();
```- Next to enable shake detection
- Create an instance of ShakeListener
```java
ShakeDetector.ShakeListener shakeListener=new ShakeDetector.ShakeListener() {
@Override public void onShakeDetected() {
// Shake detected, do something
}@Override public void onShakeStopped() {
// Shake stopped, do something
}
};
```- Now to start listening for Shake gesture, pass the instance `shakeListener` to `startShakeDetection()` function
```java
Sensey.getInstance().startShakeDetection(shakeListener);
```If you want to modify the `threshold` and `time` before declaring that shake gesture is stopped, use
```java
Sensey.getInstance().startShakeDetection(threshold,timeBeforeDeclaringShakeStopped,shakeListener);
```- To stop listening for Shake gesture, pass the instance `shakeListener` to `stopShakeDetection()` function
```java
Sensey.getInstance().stopShakeDetection(shakeListener);
```### :page_with_curl: For more info , check the **[Wiki Docs](https://github.com/nisrulz/sensey/wiki/Usage)**
# Pull Requests
I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request. Here are some basic rules to follow to ensure timely addition of your request:
1. Match coding style (braces, spacing, etc.) This is best achieved using CMD+Option+L (Reformat code) on Mac (not sure for Windows) with Android Studio defaults. This project uses a [modified version of Grandcentrix's code style](https://github.com/nisrulz/AndroidCodeStyle/tree/nishant-config), so please use the same when editing this project.
2. If its a feature, bugfix, or anything please only change code to what you specify.
3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :)
4. Pull requests _must_ be made against `develop` branch. Any other branch (unless specified by the maintainers) will get rejected.
5. Check for existing [issues](https://github.com/nisrulz/sensey/issues) first, before filing an issue.
6. Have fun!## References of Sensey
Sensey is being used in production apps as well as research & development for thesis at universities.
[Click here for the full list of references](references/Readme.md)
## License
Licensed under the Apache License, Version 2.0, [click here for the full license](/LICENSE.txt).
# Author & Contributors
This project was created by [Nishant Srivastava](https://github.com/nisrulz/nisrulz.github.io#nishant-srivastava) but hopefully developed and maintained by many others. See the [the list of contributors here](https://github.com/nisrulz/sensey/graphs/contributors).
# Ways You Can Help/Support this project
- **Star** this repository and tell all your friends about it.
- **Watch** for new releases to get an update if something happens.
- [**Open an Issue**](https://github.com/nisrulz/sensey/issues/new/choose) if you catch any error in copy text or within the project itself.
- **Open a Pull Request** to add more reference links of where Sensey is being used or fixes against [existing issues](https://github.com/nisrulz/sensey/issues).- If you can spare a few 💵:
- [Buy me a coffee :coffee:](https://www.buymeacoffee.com/nisrulz) (one-time),
- or [Sponsor me on GitHub](https://github.com/sponsors/nisrulz) (recurring monthly).- Tell me you like this project or how it helped you out!
- [Comment in the project's guestbook](https://github.com/nisrulz/sensey/issues/54) :blush:,
- Reach out on [Twitter](https://twitter.com/nisrulz),
- or [send a nice email my way](mailto:[email protected])!Thanks for your interest in this software :heart: