tpk, runtime geodatabase, and file output device's file system

Discussion created by fallingdog Champion on Dec 12, 2016

We have an android GPS application for tracking off road vehicle travel. Please keep in mind that I am not a master developer.


The current setup:

We are getting 32 GB cards with the FAT32 file system on them. They are then formatted to exFAT to handle ~6GB tpk.

We are then placing the tpk and a runtime geodatabase on the cards. Also, a folder is made on the card to output the tracks to as csv files. Then we install the cards in the device and encrypt them (we also have the device file system encrypted) . When the user wants to export the data off of the device they request the export from within the application and the csv files are exported to the sd card folder. Then the user connects the tab to a windows machine and copies the csv files to a network location where they are loaded into a SDE by a python job.


We are on Samsung 10.1 Tab 4 running Kitkat and Lollipop. But we will need to add some new Samsung 10.1 tabs soon running Marshmallow.


The problem:

The SD cards keep getting corrupted. The cards stop working. If we then try to reformat the cards (with the quick format) windows will state that it is unable to complete the format. So, there is a push to stop using the cards.


The questions:

1) Can I just copy the tpk and runtime geodatabase to a folder on the device file system. Say to \Android\data\myapp and have the application use them from that location? This sure looks like it will work fine to me provided we have enough free space on the dev tab I have running KitKat.  

2) Can I also export my csv's to \Android\data\myapp on the device file system? Would this require me to use MODE_WORLD_READABLE context for the files to be accessible from the PC side? Also, is this just kinda a lame way to do it. We do have ArcServer. Could we just push the files to the server and then to the SDE? How hard would that be to setup and maybe more importantly maintain?

3) Are the solutions to question 1 and 2 likely to work in Android N (Android 7).


Thanks so much for any input!