Sensey
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 |
Light | onDark onLight | Link |
Orientation | onTopSideUp onBottomSideUp onLeftSideUp onRightSideUp | Link |
PinchScale | onScale onScaleStart onScaleEnd | Link |
Proximity | onNear onFar | Link |
Shake | onShakeDetected onShakeStopped | Link |
Wave | onWave | Link |
Chop | onChop | Link |
WristTwist | onWristTwist | Link |
Movement | onMovement onStationary | Link |
SoundLevel | onSoundDetected | Link |
RotationAngle | onRotation | Link |
TiltDirection | onTiltInAxisX onTiltInAxisY onTiltInAxisZ | Link |
Scoop | onScooped | Link |
PickupDevice | onDevicePickedUp onDevicePutDown | Link |
Steps | stepInformation | Link |
TouchType | onDoubleTap onScroll(direction) onSingleTap onSwipeLeft onSwipeRight onLongPress onTwoFingerSingleTap onThreeFingerSingleTap | Link |
Changelog
Starting with 1.0.1
, Changes exist in the releases tab.
Including in your project
Sensey is available in the Jcenter, so getting it as simple as adding it as a dependency
implementation 'com.github.nisrulz:sensey:{latest version}'
where {latest version}
corresponds to published version in
Simple example
- To initialize Sensey under your
onCreate()
in the activity/service, call
Sensey.getInstance().init(context);
- To stop Sensey, under your
onDestroy()
in the activity/service, call
// *** IMPORTANT ***
// Stop Sensey and release the context held by it
Sensey.getInstance().stop();
-
Next to enable shake detection
- Create an instance of ShakeListener
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
tostartShakeDetection()
function
Sensey.getInstance().startShakeDetection(shakeListener);
If you want to modify the
threshold
andtime
before declaring that shake gesture is stopped, useSensey.getInstance().startShakeDetection(threshold,timeBeforeDeclaringShakeStopped,shakeListener);
- To stop listening for Shake gesture, pass the instance
shakeListener
tostopShakeDetection()
function
Sensey.getInstance().stopShakeDetection(shakeListener);
???? For more info , check the Wiki Docs
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:
- 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, so please use the same when editing this project.
- If its a feature, bugfix, or anything please only change code to what you specify.
- Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :)
- Pull requests must be made against
develop
branch. Any other branch (unless specified by the maintainers) will get rejected. - Check for existing issues first, before filing an issue.
- 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
License
Licensed under the Apache License, Version 2.0, click here for the full license.
Author & Contributors
This project was created by Nishant Srivastava but hopefully developed and maintained by many others. See the the list of contributors here.
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 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.
-
If you can spare a few ????:
- Buy me a coffee ☕ (one-time),
- or Sponsor me on GitHub (recurring monthly).
-
Tell me you like this project or how it helped you out!
- Comment in the project's guestbook ????,
- Reach out on Twitter,
- or send a nice email my way!
Thanks for your interest in this software ❤️