{"id":12794,"date":"2022-03-05T01:48:44","date_gmt":"2022-03-05T00:48:44","guid":{"rendered":"https:\/\/www.opengis.ch\/?p=12794"},"modified":"2022-03-07T16:15:52","modified_gmt":"2022-03-07T15:15:52","slug":"qfield-users-sit-down-we-need-to-talk-about-storage-access-on-android%ef%bf%bc","status":"publish","type":"post","link":"https:\/\/www.opengis.ch\/fr\/2022\/03\/05\/qfield-users-sit-down-we-need-to-talk-about-storage-access-on-android%ef%bf%bc\/","title":{"rendered":"QField Users Sit Down, We Need to Talk About Storage Access on Android"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>TLDR: Since November 2021, Google has enforced new storage access limitations for apps published on its Play store which prohibits direct storage access on Android 11 and above forcing QField to adapt and rely on importing projects and datasets to access those.<\/em><\/p><\/blockquote>\n\n\n\n<p>If you are a QField beta user on Android 11 and above, you might have noticed a significant change in the way the app is handling storage in the latest set of betas released in early February of 2022. This blog post will go over the changes, explain why those <strong>had to be made<\/strong> (looking at you, Google), how to work in this new paradigm, and showcase some new benefits from the hard work done by OPENGIS.ch\u2019s geoninjas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>It\u2019s all gone! How can I access my projects and datasets?!<\/strong><\/h2>\n\n\n\n<p>Starting with Android 11, apps are denied full access to main and external storage content. For QField, this means direct access to projects and datasets transferred and\/or downloaded into storage folders is not possible anymore.<\/p>\n\n\n\n<p>To work within this new confine, QField now has to import project folders or individual datasets into an app-dedicated storage location where Android allows for unrestricted read\/write access.<\/p>\n\n\n\n<p>Practically, this means that instead of being shown and having access to the full storage tree when clicking on the \u201cOpen local files\u201d button, users are now shown a set of new folders named \u2018QField files directory\u2019, \u2018Imported datasets\u2019, and \u2018Imported projects\u2019 as well as a drop-down menu accessible via a top-right three-dot button.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/lB1LdVMJcbB8AZ13axbQcAAH2H8aG9QolThzc1Mzl53mfRcVrMa2Are3gXos6wzTEusu5K0SeROritR3eU6JFSMcm1gR7H1wdIdBQ4gJ4zXdjWs8_GiApmIp0xGZO__vx8GsxZR_\" alt=\"\"\/><figcaption>The drop-down menu lists the means to import projects and datasets: import project from folder, import project from ZIP [archive], and import [individual] dataset(s).<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Import project from folder<\/em><\/h3>\n\n\n\n<p>When importing a project from a folder, users will be asked to grant permission for QField to read the content of a given folder on the device\u2019s storage via a system folder picker. When the folder is selected, QField copies the folder content (including its sub-folders) into the app\u2019s \u2018Imported projects\u2019 location. Users can then open the project from there.<\/p>\n\n\n\n<p>Re-importing a given folder through the drop-down menu action will overwrite preexisting projects given an identical folder name. That allows users to be able to update projects.<\/p>\n\n\n\n<p><em>Note that feature editing, addition, and deletion will be saved into the imported project\u2019s datasets, not in the original folder selected during the import process. More on how to find and handle those project datasets will come later in this post.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Import project from ZIP archive<\/em><\/h3>\n\n\n\n<p>Having to adapt to Google\u2019s new set of rules did not come without its benefits. Users can now easily transfer projects into a given device by compressing the project content into a ZIP archive and having QField import that compressed project automatically. This can greatly ease remote deployment of projects by being able to send a single file to users.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Import dataset(s)<\/em><\/h3>\n\n\n\n<p>QField can also import individual dataset(s). Users will be asked to select one or more files via a system file picker, which will be copied into the \u2018Imported datasets\u2019 folder. Users will have to ensure that all sidecar files are selected when importing (e.g. a shapefile dataset would require users to select the .shp, .shx, .dbf, .prj, and .cpg files).<\/p>\n\n\n\n<p><em>Just like imported projects, editing of datasets will be saved into the imported datasets, and not reflected in the original files.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Alright, but how can I retrieve modified projects and datasets?<\/strong><\/h2>\n\n\n\n<p>Imported projects and datasets can be accessed directly using a USB cable. The location on storage is displayed in the top navigation bar when opening a local file.<\/p>\n\n\n\n<p>On most devices plugged into a computer via USB cable connection, the path will be &lt;drive&gt;:\/Android\/data\/ch.opengis.qfield\/files\/ where you will find both the Imported Datasets and Imported Projects folders within which your edited content will be located.<\/p>\n\n\n\n<p>However, we\u2019ve also added a nice new \u2018Send to\u2026\u2019 functionality that allows for users to share and send datasets straight from QField using Android APIs. This allows for the sending of edited datasets directly to third party apps (Gmail, Drive, Dropbox, Nextcloud, your favourite messenger app, etc.).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/oTkD9HqHrrRR2G2ftpoSipcpoJ9GIhq-2Iyi_vn59coCzWoIZX7BcVfE_IVkDj4EcI2mDIOfot6UTZI0HZcUuBug_UKqEc1SI4FbFSgB0GhFAhRgYSKRlf-3MSdm0MKMyOteSx8u\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Is direct copying via USB cable gone altogether?<\/strong><\/h3>\n\n\n\n<p>Users can still avoid going through the import process by copying files via a USB cable connection directly into the QField app\u2019s files directory. As mentioned above, the location on most devices will be &lt;drive&gt;:\/Android\/data\/ch.opengis.qfield\/files\/.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What are the benefits from these changes?<\/strong><\/h2>\n\n\n\n<p>Working out a functional solution to meet Google\u2019s newly-enforced restrictions did not come without its benefits.<\/p>\n\n\n\n<p>On top of what was already covered above &#8211; importing of compressed project ZIP files and sharing functionalities \u2013 QField is now fully integrated with Android\u2019s cross-application document sharing APIs. This means that users can now directly open projects and files sent to them via their favourite browser\/email\/cloud\/messenger app without the need to first download those files onto the device.<\/p>\n\n\n\n<p>Altogether, the newly-coded importing mechanisms and integration with Android document APIs don\u2019t only improve the ease of use for the average person, it also makes viewing and editing spatial datasets on QField far more secure. The imported projects and datasets reside in a location with access limited to QField only, meaning that its content is inherently far more protected from malicious access from third-party apps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why were these drastic changes needed?<\/strong><\/h2>\n\n\n\n<p>As mentioned in the introduction, the changes were needed to comply with a set of new Google Play policies that came into force in November 2021. Users can read more on Google\u2019s rationale on this page <a href=\"https:\/\/developer.android.com\/google\/play\/requirements\/target-sdk\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developer.android.com\/google\/play\/requirements\/target-sdk<\/a>.<\/p>\n\n\n\n<p>As part of the enforcement of these new policies, Google came up with an arbitrary mechanism to whitelist some apps which allows those to retain full storage access given the user explicitly allowed for it. We here at OPENGIS.ch believes QField had ample justifications to be whitelisted, however, Google\u2019s appeal process judged otherwise after a series of email exchanges detailing our reasoning. While we have so far lost this argument with Google, we will continue fighting for our users and for their freedom to choose. If by any chance you have a good contact at Google that might be willing to listen to our reasoning, we would be grateful if you&rsquo;d <a href=\"https:\/\/opengis.ch\/#contact\" data-type=\"URL\" data-id=\"opengis.ch\/#contact\">get in touch with us<\/a>.<\/p>\n\n\n\n<p>We hope this clarifies the recent changes and helps QField users adapt to those.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since November 2021, Google has enforced new storage access limitations for apps published on its Play store which prohibits direct storage access on Android 11 and above forcing QField to adapt and rely on importing projects and datasets to access those.<\/p>\n","protected":false},"author":2,"featured_media":12796,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[125],"class_list":["post-12794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qfield","tag-qgis-org"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/import.png?fit=768%2C417&ssl=1","jetpack-related-posts":[{"id":12810,"url":"https:\/\/www.opengis.ch\/fr\/2022\/04\/05\/qfield-2-0-is-here\/","url_meta":{"origin":12794,"position":0},"title":"QField 2.0 Arctic Fox is here","author":"Marco Bernasocchi","date":"5 avril 2022","format":false,"excerpt":"Let's not paraphrase it, QField 2.0 is here and it is taking professional GIS fieldwork to a completely new level.","rel":"","context":"Dans &quot;Featured&quot;","block_context":{"text":"Featured","link":"https:\/\/www.opengis.ch\/fr\/category\/featured\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/00_titel-complete_phone.png?fit=1200%2C1067&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/00_titel-complete_phone.png?fit=1200%2C1067&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/00_titel-complete_phone.png?fit=1200%2C1067&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/00_titel-complete_phone.png?fit=1200%2C1067&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/03\/00_titel-complete_phone.png?fit=1200%2C1067&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1700,"url":"https:\/\/www.opengis.ch\/fr\/2015\/06\/15\/qfield-in-the-wild\/","url_meta":{"origin":12794,"position":1},"title":"QField in the wild","author":"Marco Bernasocchi","date":"15 juin 2015","format":false,"excerpt":"QField Experimental is out, after a couple of months of requirements gathering, private early alpha testing and foremost tons of emails requesting access to the testes group we decided today to put the current BETA version in the playstore. This means that from now on you can install QField just\u2026","rel":"","context":"Dans &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"QField app on Google Play","src":"https:\/\/i0.wp.com\/developer.android.com\/images\/brand\/en_app_rgb_wo_45.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":15180,"url":"https:\/\/www.opengis.ch\/fr\/2025\/03\/04\/qfield-3-5-fangorn-background-tracking-a-reality\/","url_meta":{"origin":12794,"position":2},"title":"QField 3.5 \u201cFangorn\u201d: Background tracking a reality!","author":"Mathieu","date":"4 mars 2025","format":false,"excerpt":"Track positions in the background, even when your device is locked, for more efficient fieldwork. Enjoy seamless WebDAV folder integration, grid decorations, improved QFieldCloud downloads, and new plugin enhancements, that allow for example OpenStreetMap search integration or AI prompting. Big thanks to our sponsors\u2014this release is a game-changer! \ud83d\ude80","rel":"","context":"Dans &quot;GIS&quot;","block_context":{"text":"GIS","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/02\/splash.png?fit=1200%2C736&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/02\/splash.png?fit=1200%2C736&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/02\/splash.png?fit=1200%2C736&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/02\/splash.png?fit=1200%2C736&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/02\/splash.png?fit=1200%2C736&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":12165,"url":"https:\/\/www.opengis.ch\/fr\/2021\/06\/08\/qfieldcloud-now-opensource-happy-10-years-of-field-mapping-with-qgis\/","url_meta":{"origin":12794,"position":3},"title":"QFieldCloud now opensource &#8211; Happy 10 Years of field mapping with QGIS","author":"Marco Bernasocchi","date":"8 juin 2021","format":false,"excerpt":"Today, on QField's 10th anniversary, we're extremely proud to publish the results of over 18 months of development and give you the source code of QFieldCloud to go and make your awesome adaptations, solutions, and hopefully contributions :) If you want to quickly try it out, head to\u00a0https:\/\/qfield.cloud where our\u2026","rel":"","context":"Dans &quot;QField&quot;","block_context":{"text":"QField","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/qfield\/"},"img":{"alt_text":"QField git history","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2021\/06\/qfield-git-history.png?fit=660%2C280&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2021\/06\/qfield-git-history.png?fit=660%2C280&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2021\/06\/qfield-git-history.png?fit=660%2C280&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":1923,"url":"https:\/\/www.opengis.ch\/fr\/2015\/12\/01\/qfield-for-android-5\/","url_meta":{"origin":12794,"position":4},"title":"QField for Android 5","author":"Marco Bernasocchi","date":"1 d\u00e9cembre 2015","format":false,"excerpt":"It's done, QField runs on any android from 4.0.3 (ICS) with a seamless installing experience. We suggest using at least Android 4.3","rel":"","context":"Dans &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"QField app on Google Play","src":"https:\/\/i0.wp.com\/developer.android.com\/images\/brand\/en_app_rgb_wo_45.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":13237,"url":"https:\/\/www.opengis.ch\/fr\/2022\/10\/13\/qfield-2-4-is-here-and-it-is-%f0%9f%8d%8ficious\/","url_meta":{"origin":12794,"position":5},"title":"QField 2.4 is here, and it is ?icious","author":"Marco Bernasocchi","date":"13 octobre 2022","format":false,"excerpt":"Yes, QField for QGIS, the leading fieldwork app, was released on the iOS App Store! Get It now for Android, iOS, MacOS, Windows and Linux Good things take time (and sponsors), and we wanted our Apple users to enjoy the same solid and seamless experience as our Android users. So\u2026","rel":"","context":"Dans &quot;QField&quot;","block_context":{"text":"QField","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/qfield\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/10\/qfield24.png?fit=809%2C582&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/10\/qfield24.png?fit=809%2C582&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/10\/qfield24.png?fit=809%2C582&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/10\/qfield24.png?fit=809%2C582&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/pbdBtI-3km","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/comments?post=12794"}],"version-history":[{"count":4,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12794\/revisions"}],"predecessor-version":[{"id":12803,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12794\/revisions\/12803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/media\/12796"}],"wp:attachment":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/media?parent=12794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/categories?post=12794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/tags?post=12794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}