You think something’s wrong with your app?
Some trips are not being detected?

Here are some tips and tricks that help SenseMyCity work better (or any other background data collection app).

 

Required (and asked for) permissions:

  • Location. How else could we collect location data?
  • Accounts (on Android <8.0). The app requires this permission so it can obtain the smartphone’s registered Google Account’s e-mail. Without it, the platform cannot provide ownership (make sure only you can see your data), and therefore it cannot collect any data. Don’t worry, we don’t store it, only a hashed version.
    Android 8.0+ allows us to ask for an account at first run, without this permission.

 

Required Android configurations:

  • Location services must be ON. There’s no escaping this.
  • Google Services must be installed. The app should ask to install them if they are not installed. They provide location, activity recognition services, and mapping API.

 

Recommended configurations:

  • Location services set to High Precision. Our automatic motion detector only asks for passive or low-power locations, but after movement is detected our app asks for high precision and frequency locations, until you stop moving. The data is much more useful this way.
  • Mobile Data active. The app doesn’t transmit anything via a mobile connection, unless you tell it so. The ubiquitous Google Services, however, can sporadically use it to obtain a low-battery-cost location from Google Servers (using the list of nearby wifi and cellphone towers). Our app can leverage this location updates to better detect user motion.
  • Google Location History. In the “Accounts” -> “Google” -> “Privacy” -> “Activity Controls” menu . This option allows Google to sporadically collect and store your location, enabling Google Maps Timeline and providing you with creepy monthly e-mails listing the places you visited. This feature effectively causes a  new low-battery-cost location to be requested every 60s, providing any app with an energy-free location every 60s. Alternatively:
  • U.Move/SenseMyCity setting: Improve Sensitivity of Auto Start. Without location updates provided by the previous option, the app relies on the Google Activity Recognition to detect movement, with accuracies greatly dependent on the smartphone model and software version. Alternatively, this setting tells our app to make a low-battery-cost location request every 60s, which requires an active internet connection but greatly improves the motion detector.

 

Some known problems:

Some smartphones’ manufacturers use aggressive power-saving techniques, that can affect background apps.

Others use network security settings that don’t comply with the Android Documentation and  block outgoing UDP/TCP connections.

Many fixes are listed here:
https://sleep.urbandroid.org/documentation/faq/alarms-sleep-tracking-dont-work/

 

Here are a few suggestions and fixes for some common smartphone models:

 

restricted background services:

This feature prevents apps to be run after the smartphone screen is turned off or rebooted.

HuaweiPhone Manager -> Lock screen cleanup -> SenseMyFEUP -> Don’t close
http://nine-faq.9folders.com/articles/15792-how-to-turn-off-the-lock-screen-cleanup-on-the-huawei-devices

OnePlusSettings -> Advanced -> Recent app management -> Normal clear
        and: Recent Apps -> lock SenseMyFEUP (top right corner on the recent Apps Windows)
http://nine-faq.9folders.com/articles/12302-how-to-turn-off-background-restriction-on-the-oneplus-devices

XiaomiSecurity -> Permissions -> Autostart -> SenseMyFEUP -> Allow
http://nine-faq.9folders.com/articles/8772-how-to-manage-autostart-service-on-the-xiaomi-devices

Asus: Mobile Manager -> Permissions -> Auto-Start Manager -> Downloaded -> SenseMyFEUP -> Allow
or: Auto-Start Manager -> Downloaded -> SenseMyFEUP -> Allow
           https://www.asus.com/support/FAQ/1013752/

 

Restricted network connections:

Some smartphone models have buggy Android versions that prevent apps from creating outgoing network connections.

If you have answered some “travel mode surveys” in the previous day, but still don’t see any graphs in the app main screen, you probably have one of these versions.

To confirm, connect to a wifi network and go to SenseMyFEUP -> Settings -> DB Report , and see if there are locally stored trips:
If session > 0 , click SenseMyFEUP -> Settings -> Force an export.
After 1 minute go again to SenseMyFEUP -> Settings -> DB Report.
If session > 0
 , you have a buggy version…
Please disable Export only via Wifi, and force an export.
You might also need to disconnect wifi and export using a mobile connection.
Note: SenseMyFEUP uploads around 1MB of data per hour of sensed trip.

 

Battery optimization:

Our app follows Google’s guidelines and therefore should be compatible with standard Battery Saving techniques, such as Doze.

But if you still have problems with missing trips after following the previous recommendations, please turn off battery optimization for the SenseMyFEUP App in your phone settings.
Here is how to do it in some smartphone models:

http://nine-faq.9folders.com/categories/2758-troubleshooting 

 

Report to the developers:

If the app still misses a lot of trips, please:

  • Go to the App settings menu;
  • Open Diagnose, wait 10s for some values to be populated;
  • Take a screen shot;
  • Send it to the developers together with your description.
  • Thanks!