Android 11 Compatibility
Google published the last beta before the official Android 11 release. We should make sure the app runs as intended on Android 11 until the release (probably early next month).
The Android 11 (SDK 30) changes can be split into two categories:
1. Changes affecting every app This affects Sync immediately after Android 11 release so we should focus on these changes first, The good thing is that most changes do not affect Sync.
- [x] One-time permissions: Make sure we do not assume having a permission anywhere
- [ ] Permission request visibility: Deactivate functionality based on available permissions e.g. disable call detection if permission is denied
- [x] Non-SDK API Restrictions: Make sure we do not use non-SDK APIs
2. Changes affecting apps with build-target set to Android 11 (SDK 30) At some point we have to increase our build target. When we do this the following changes can affect us and we should verify we handle these correctly.
- [x] Scoped storage enforcement: We tackled this already for Android 10 :tada:
- [ ] Permission auto-reset: Since Sync runs mostly in the background we should consider adding an exclusion request to the initial setup
- [x] Background-Location Access changes: Make sure our current implementation works on Android 11 and follows the best practices
- [x] Package visibility changes: Sync needs the
QUERY_ALL_PACKAGESpermission once we increase the buildTarget. TODO: upstream
I don't own a Device with an Android 11 beta and the emulator does not support Bluetooth LE. If you are an Android 11 beta user please share your feedback and Android 11 related issues below.
Currently it works fine on my Pixel 4 with Android 11 Beta 3 (RPB3.200720.005), no issues detected so far
It appears we do not use non-SDK APIs
0 hidden API(s) used: 0 linked against, 0 through reflection
0 in greylist
0 in blacklist
0 in greylist-max-o
0 in greylist-max-p
0 in greylist-max-q