The Android 11 and higher operating systems include several changes that will impact the way CoPilot:
- Stores application files and map data on a device
- Requests permission to access your device's current location
These changes were partially introduced in Android 10 and will now be required for Android 11 and higher. As a result:
- If you are planning to update your devices to Android 11 or higher, you also must upgrade to the latest version of CoPilot to ensure full compatibility.
- If you are currently running Android 10 or below, older versions of CoPilot will still be compatible. However, we recommend you upgrade to the latest version of CoPilot to ensure full compatibility if you decide to upgrade your operating system in the future.
- If you are currently running Android 10, and you upgrade to the latest version of CoPilot, many of the same changes will occur as if you were installing it on Android 11. (Please see below.)
- Partners integrating CoPilot Android CPIK Xamarin version 10.14.0.487 and higher need to upgrade their development library to AndroidX. The AndroidX with Xamarin online developer site has info on how to upgrade.
(See also: Required Android updates for CPIK customers)
In this article:
Who is Impacted?
Anyone using the Android version of the CoPilot GPS app downloaded from Google Play, as well as companies that have integrated CoPilot using our: Android Common Bundle (SDK), Android CPIK libraries, Android Xamarin CPIK libraries or Android CPIK libraries react native.
What is Happening?
Android 11 includes several user privacy updates related to how apps are allowed to store data on a device and request permission for location services, which are necessary for CoPilot to provide GPS navigation. Starting with version 10.14.0.487, CoPilot includes the following changes to comply with the new Android requirements:
Change 1: CoPilot will store files, including map data, in a new location
The new version of Android will enforce "scoped storage," which limits each application on a device to accessing a specific directory. Because of this new restriction, no file or folder can be created in the root directory.
Impact on CoPilot
New Installations of CoPilot
Any new installation of CoPilot will install assets and map data under the directory: /storage/Android/data/{bundlename}/files
Existing Installations of CoPilot
- Applications installed on Internal Device Storage: The asset and map installed directory will change from root directory to: /storage(0/1)/Android/data/{bundlename}/files/
- Applications installed on External Storage (SD Card): The asset and map installed directory name will also change to: /storage(0/1)/Android/data/{bundlename}/files/
Upgrading to a Newer Version of CoPilot (Android 10 and Higher)
- When upgrading the CoPilot application, ALL of the existing map data and application files will be moved over to the new location: /storage/Android/data/{bundlename}/files
- (Android Common Bundle SDK Only) When upgrading from an older version of CoPilot (10.4 or 10.9), customers should uninstall their 10.4 or 10.9 build and do a complete re-install of CoPilot 10.14.0.487 or higher.
Special Situations
Sharing Maps with Dual Applications (Android 11 and Higher)
New Android permissions limit access to only a single application. Therefore, this functionality will no longer be supported.
Map Data Residing Outside of the Application Folder (Android 10 and Higher)
If your map data is located outside the application folder, then you will need to update your product.cfg to reflect the new location of the data.
Uninstalling CoPilot (Android 11 and Higher)
When you remove the application from your device, this will also remove all map data and other files that reside under: /storage/Android/data/{bundlename}/
CoPilot GPS App on Google Play (Android 10 and Higher)
Manual backup of Favorites, Recents and Trips will require using the files located in: /storage/Android/data/{bundlename}/files.
Reinstalling the app will not require the additional step of manually deleting the com.alk.mapviewer folder as it will be removed as part of the uninstall process.
Using the same storage directory regardless of Android version
You can add the setting below to a product.cfg file to ensure that CoPilot complies with scoped storage requirements, regardless of which version of Android is running on a device. This is especially helpful if you have a mix of devices running both Android 9, which doesn't enforce scoped storage, and Android 10 or higher, which require scoped storage.
[Directories] "RuntimeDir"="/storage/emulated/0/Android/data/com.alk.copilot/files/"
Change 2: CoPilot will request extra permission to allow location access
This change does not apply if using devices with Android OS 9 or older
Impact on CoPilot
With Android 10, CoPilot will display screens similar to these, asking for permission.
With Android 11, CoPilot will display screens similar to these, asking for permission.
What You Need to Know
The new location permission will prompt the user to allow location access directly in the device's settings menu. No other changes to your CoPilot implementation are needed.
FAQs
What if I load an older version of CoPilot on a device running Android 10 or 11?
When a CoPilot version older than 10.14.0.487 is installed on a newer Android OS (10 or 11), CoPilot will still unpack its support files to the legacy storage location as it would when it's running on an older Android OS. This is because the API Level in the older apps is lower than 29. CoPilot should work as it had in the past.
What happens I if have an older version of CoPilot on my devices and I update to a newer Andriod OS without also updating CoPilot?
CoPilot versions older than 10.14.0.487
When you update to a newer OS—say, updating Android 9 to Android 10—with CoPilot still installed, CoPilot should still work fine after the update. The version of CoPilot installed is targeting an older API Level and even newer Android OS versions (Android 10 and 11, specifically) still respect that apps written for older OS versions aren't ready to have the privacy changes forced on them. Google may change this policy in the future.
10.14.0.487 and later
Newer versions of CoPilot already contain the change to do the migration of support files, but they first check to make sure the Android OS version is 10 or newer before doing anything. When you update from an Android OS version 9 or older to 10 or 11, on first launch CoPilot will move the files from the old location to the new location. This should happen automatically and almost instantly—a second or two. (Note: In the unusual event that you have any code that interacts with the CoPilot support files, be sure it is not active during this migration process.)
If you have questions about upgrading CoPilot to prepare for Android 11, please contact our Support team using the Submit Ticket button at the top of this screen.