Tato otázka trápí nás i naše uživatele od nástupu Androidu Kitkat 4.4.2. do našich telefonů a tabletů. A jelikož stále mnozí z vás touží po odpovědi, věnujeme dnešní blog tomuto tématu. Dofejme, že vnese alespoň trochu do našich duší klid a do myslí našich rozhněvaných fanoušků pokoj.
Vše fungovalo bez problémů, dokud…
Než se dobereme jádra problému, dovolte mi pár slov o historii Locusu. Locus Map téměř od samého začátku koexistoval s prostředím Androidu v klidné harmonii. Mohl kompletně a bez problémů migrovat na SD kartu, ukládat zde stahované mapy, importovat sem body a trasy, zálohovat sem nastavení. Dokonalé partnerství ale rozbila netušená zrada s nástupem čokolády od Nestlé, která se smí jen o pauzách. Přinesla něco, co nikdo nečekal – zákaz zápisu na SD kartu pro všechny aplikace. Důvody – bezpečnost. Locus Map najednou ztratil možnost zapisovat data do externí paměti, což bylo v případě objemných SQLitedb databází rastrových map dost zásadní. Nemohl tam ukládat geokeše, vektorové mapy, ani zálohovat. Mávnutím kouzelného proutku se SD karta stala read-only médiem.
…jsme se nedostali do průšvihu.
Následky byly téměř katastrofické pro do té doby stabilní a plně funkční Locus Map. Aplikace začala padat, mnohdy nebyla ani schopna startu. Locus Team si užil hodně horkých chvilek, než se situace uklidnila. Museli jsme rychle najít řešení a uklidnit rozzuřené uživatele – nabídli jsme hned několik způsobů, jak přežít Kitkat, které jsme uvedli zde a zde. Naštěstí uživatelům byla ponechána možnost alespoň manuálního zápisu na SD kartu – velké mapové balíky si tam mohli přesunout přes správce souborů a v Locusu k nim pak nadefinovat novou cestu.
Android 5.0 – záblesk naděje
Android 4.4.4. nepřinesl do řešení problému s SD kartou nic nového. Až Android 5.0 znamenal závan čerstvého vzduchu:
Dovolil alespoň částečně práva Locusu na zápis na SD kartu vrátit. Od nynějška tam můžete přesměrovat složky s vektorovými mapami (MapsVector), SRTM daty (výšková data, potřebná např. pro stínování terénu – data/srtm) a zálohami (backup). Víc bohužel zatím není možné, i tak jsme strávili celý týden hledáním kliček, jak tento podivný nápad Googlu obelstít. Proto stále doporučujeme kořenový adresář Locus ponechat v interní paměti, stejně jako hlavní mapový adresář Maps, kam Locus Map stahuje mapy z online režimu (stažené mapy pak můžete ručně přesunout na SD kartu a přidat je do Locusu jako “externí”).
7 Comments
Zdravim, len sa chcem opytat ako je mozne ze file manager moze kopirovat na kartu
Dobrý den,
pokud to hodně zjednodušíme, file manager je pouze prostředek, který ke kopírování na kartu využívá přímo uživatel. Narozdíl od toho např. vytváření SQLitedb databáze mapy při stahování z online módu je operace čistě v režii aplikace samotné. Nicméně problematika je mnohem složitější, další info (v angličtině) získáte zde: http://www.chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/ nebo zde: http://www.gottabemobile.com/2014/02/22/samsung-galaxy-s4-note-3-android-4-4-problem-hits-micro-sd-card/
Check Here maps. They can download to SD flawlessly.
You can use your package-specific directory, right? It is erased with uninstallation, but downloaded maps can be re-downloaded again after re-installation from the user account, right?
How often users uninstall your app compared to map downloads?
Optimize for the most common scenario, not the least.
Hello Indrik, "maps can be re-downloaded again after re-installation from the user account"... do you have any "User account" in Locus Map to store custom-downloaded maps? Unfortunately, not yet. We're working on it. Until it's done, you may use Here maps instead of Locus ;). Our current solution is optimized for our current options and background.
Nevertheless, you've written nothing new as we wrote about it 1,5 yrs ago here https://www.locusmap.app/locus-map-does-not-run-since-update-device-to-android-4-4-2-kitkat/#solutionB. Anyway, we don't recommend it in the latest blogpost because of the issue you mention as well - the folder is deleted during uninstall. Of course you are free to choose this method.
But you guarantee payed maps can be re-downloaded, right? At least for vector maps. It is not valid for other payed maps so if I pay for it and lost my phone, I will not be able to re-download the maps I payed for in Locus associated with the same account again?
I mean the Google account from which I downloaded the Locus. Vector maps are associated to that Google account, right? Or how does it work that I am able to re-download them?
LoMaps, i.e. Locus vector maps can be re-downloaded, that we can guarantee as we've got full control over these data and we store the purchase information. But not other purchases from other providers. In case of data (phone) loss the purchase has to be made again - information about the purchases from other providers nor the purchased data themselves aren't stored anywhere. We (Asamm Software) buy the map tiles from the provider and sell them. And we must pay for each single tile that is downloaded, therefore if you lose data, we can't re-download them for you for free.