package icon

WaveUp

Turn on the display by waving
WaveUp is an app that wakes up your phone - switches the screen on - when you wave over the proximity sensor.

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

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
  • Version 3.2.20 (124) suggested Added on Jul 19, 2024

    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.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
      (11)
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.4 MiB PGP Signature | Build Log

  • Version 3.2.19 (123) - Added on Jul 15, 2024

    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.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
      (11)
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.3 MiB PGP Signature | Build Log

  • Version 3.2.18 (122) - Added on Jul 03, 2024

    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.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
      (11)
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.3 MiB PGP Signature | Build Log