Skip to content

v4.2.1-fork.2

Pre-release
Pre-release

Choose a tag to compare

@va13k va13k released this 15 Jul 15:37

Fixed bugs from previous pre-release

Consents

Before, the app only asked for 5 consents: Location, Wi‑Fi, Bluetooth, Telephony, and Calls/Messages. Applications and Keyboard sensors had no consent entry at all, so participants never saw a clear request for them.

Now Applications and Keyboard have their own consent entries. Participants see a request for every sensor the study uses, and the enable flow works more consistently (no more sensors quietly skipped).

Crash on sensor update

When a study update changed which sensors were on or off, the app sometimes crashed. The cause: code like Integer.parseInt(Aware.getSetting(...)) and Double.valueOf(Aware.getSetting(...)) read a setting and converted it to a number with no try/catch. If that setting was empty or not a number at that moment, this threw a NumberFormatException and crashed the app. This was already fixed for Applications, Processor, and the Ambient Noise plugin (AudioAnalyser.java, AudioAnalysis.java) in an earlier fix – see commit 6c37754.

Now every sensor has the same safe try/catch handling, so the app no longer crashes on study join, re-join, or config updates. Unit tests were added to lock this fix in place.

Config sync now checks real device state, not just saved text

Before, when checking for study updates, the app only compared the saved config text to the new config text from the server. It never checked what was actually running on the phone. So if the phone's real sensor settings drifted away from the config (for example after a reset), the app still said "no updates" and never fixed it – even though a sensor could be silently off.

Now the app also checks the live sensor settings on the phone, not just the saved config text. If it finds a mismatch, it fixes it automatically. This means the sensor list and "what's collecting" info shown to the participant is now accurate, and drift gets self-corrected instead of going unnoticed.

Sensor hardware detection refactor

The project's README says aware-phone should hold the participant-facing UI logic, and aware-core should hold the internal logic. Sensor hardware detection (checking if the phone has a given sensor, like a barometer) broke this rule, so the logic lived only in the UI layer, so background code couldn't use it.

Now hardware detection lives in aware-core, in one shared place. The UI code and the background config-sync check both use the same logic, so they can never disagree about whether a sensor's hardware exists.

Sensor exclusion log for researchers

Before, if a sensor could not collect data – no hardware, missing permission, Accessibility Service off, or Location Services off – only the participant could see this, inside the app. The researcher had no way to know why a sensor showed no data.

Now the app writes a log line for each excluded sensor and its reason. This log goes to the researcher's database the same way other logs already do, so no new setup is needed. Researchers can now see, per participant, which sensors are excluded and why (no hardware, missing permission, Accessibility off, or Location Services off).


Which APK should I download?

This release has 5 APK files, one for each phone CPU type. Pick the one that matches your phone. If you are not sure, arm64-v8a is correct for almost all modern Android phones (bought from 2017 or later).

File name Use it if...
aware-phone-arm64-v8a-debug.apk Your phone is a normal modern Android phone (most common choice).
aware-phone-armeabi-v7a-debug.apk Your phone is an older or budget 32-bit Android phone.
aware-phone-armeabi-debug.apk Very old phone, only needed if the other options don't install.
aware-phone-x86-debug.apk Only for Android emulators or old Intel-based tablets.
aware-phone-x86_64-debug.apk Only for Android emulators or Intel-based Chromebooks.

How to check your phone's CPU type: go to Settings → About phone, and look for "CPU" or "Processor" info. If you don't see it there, you can install a free app like "Droid Hardware Info" from the Play Store, which shows this clearly.

If you install the wrong one: the app will simply fail to install or crash right away – it will not damage your phone. Just delete it and try a different file.