WaveUp
I have developed this app because I wanted to avoid pressing the power button just to take a look at the watch - which I happen to do a lot on my phone. There are already other apps that do exactly this - and even more. I was inspired by Gravity Screen On/Off, which is a great app. However, I am a huge fan of open source software and try to install free software (free as in freedom, not only free as in free beer) on my phone if possible. I wasn't able to find an open source app that did this so I just did it myself. If you're interested, you can take a look at the code:
https://gitlab.com/juanitobananas/wave-up
Just wave your hand over the proximity sensor of your phone to turn the screen on. This is called wave mode and can be disabled in the settings screen in order to avoid accidental switching on of your screen.
It will also turn on the screen when you take your smartphone out of your pocket or purse. This is called pocket mode and can also be disabled in the settings screen.
Both of these modes are enabled by default.
It also locks your phone and turns off the screen if you cover the proximity sensor for one second (or a specified time). This does not have a special name but can nonetheless be changed in the settings screen too. This is not enabled by default.
For those who have never heard proximity sensor before: it is a small thingie that is somewhere near where you put your ear when you speak on the phone. You practically can't see it and it is responsible for telling your phone to switch off the screen when you're on a call.
Known issues
Unfortunately, some smartphones let the CPU on while listening to the proximity sensor. This is called a wake lock and causes considerable battery drain. This isn't my fault and I cannot do anything to change this. Most phones, however, will "go to sleep" when the screen is turned off while still listening to the proximity sensor, resulting in practically zero battery drain.
Use of Accessibility Services:
▸ Purpose: Starting with Android 9, WaveUp utilizes the Accessibility Services API to allow users to switch off the screen.
▸ Privacy and Security: WaveUp uses the Accessibility Services API exclusively for this purpose and only if the 'lock' option is enabled. No personal data is collected, stored, or shared through this service.
▸ Permission Scope: The Accessibility Services permission is strictly used for enabling the screen lock feature. It does not monitor or interact with any other aspect of device usage.
Required Android Permissions:
▸ WAKE_LOCK to turn on the screen
▸ RECEIVE_BOOT_COMPLETED to automatically startup on boot if selected
▸ READ_PHONE_STATE to suspend WaveUp while on a call
▸ BLUETOOTH (or BLUETOOTH_CONNECT for Android 10 and abve) to detect bluetooth headsets while on a call and not suspend WaveUp
▸ REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, FOREGROUND_SERVICE and FOREGROUND_SERVICE_SPECIAL_USE to keep running in the background (which is vital for WaveUp in order to always listen to the proximity sensor)
▸ USES_POLICY_FORCE_LOCK to lock the device for Android 8 and below (this forces the user to use a pattern or pin if set)
▸ BIND_ACCESSIBILITY_SERVICE (Accessibility API) to turn off the screen for Android 9 and above.
▸ REQUEST_DELETE_PACKAGES to uninstall itself (if USES_POLICY_FORCE_LOCK was used)
Uninstalling on Android 8 and older
This app uses the Device Administrator permission to provide enhanced functionality, which means you cannot uninstall WaveUp in the usual way.
To uninstall it, open the app and use the 'Uninstall WaveUp' button at the bottom of the menu. This will deactivate the Device Administrator permission and uninstall the app directly.
Miscellaneous notes
This is the first Android app I have ever written, so beware!
This is also my first small
- Author: juanitobananas
- License: GNU General Public License v3.0 only
- Issue Tracker
- Translation
- Source Code
- Build Metadata
Donate
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid-
This version requires Android 4.0.3 or newer.
It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.
Download APK 4.4 MiB PGP Signature | Build Log
-
This version requires Android 4.0.3 or newer.
It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.
Download APK 4.3 MiB PGP Signature | Build Log
-
This version requires Android 4.0.3 or newer.
It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.
Download APK 4.3 MiB PGP Signature | Build Log