# SenseyiOS
**Repository Path**: mirrors/SenseyiOS
## Basic Information
- **Project Name**: SenseyiOS
- **Description**: Sensey 是一个简化手势处理的 Android 库
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/sensey
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-21
- **Last Updated**: 2025-09-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## 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.
### Screenshot of sample app
 
# 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 [  ](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:nisrulz@gmail.com)!
Thanks for your interest in this software :heart:
