Nastavení karty SD v systému Android. Aktualizace systému Android Lollipop a funkce práce s externí paměťovou kartou

Je to hotové! Na tabletu, konkrétně na Asus MeMO Pad 7, který nahrazuji svého poctivého workoholika, dorazila aktualizace na Android 5.0.1. Nyní mám zařízení s Lollipopem, nebo, jak se říká na internetu, s Lolipopou.


Aktualizace dorazila poněkud nečekaně. Abych byl upřímný, čekal jsem v dubnu nový firmware do telefonu ( Asus ZenFone 5) - alespoň to slíbili. Nikdo neřekl nic o tabletu a tady - na vás, pořiďte si to a podepište.

To mě ve skutečnosti odradilo (samozřejmě v dobrém slova smyslu), také proto, že jsem tablet koupil v prosinci a měl verzi 4.3. To znamená, že se jedná o druhou významnou aktualizaci. operační systém (ve skutečnosti bylo více aktualizací, ale číslo verze Androidu se nezměnilo). Předchozí výrobce mých zařízení - Samsung - se nemohl pochlubit takovou rychlostí střelby, i když také dvakrát aktualizoval operační systém: z Androidu 3.2 na Android 4.1.2 (přes 4.0.1). Teprve nyní trvalo mnohem déle čekat na tyto nové verze.

No, ať žijí překvapení! Po obdržení oznámení o opuštění nová verze firmware, okamžitě jsem jej stáhl, což je více než 700 metrů, a spustil aktualizaci. Protože jsem se neprohnul domácí síť, ale prostřednictvím mobilního telefonu pak vše o všem trvalo trochu déle: od začátku stahování do dokončení aktualizace uběhla zhruba hodina. Samotná aktualizace trvala asi dvacet minut, ale potenciálně to může trvat déle - protože po instalaci operačního systému následuje proces aktualizace nainstalovaných programů. Moje počítadlo bylo 205. Ale nyní je proces u konce a je čas zjistit, co se změnilo.

První věc, která mě zaujala, byla propracovanější grafika při odemykání zařízení. Druhým je ruka v oznamovací oblasti. Pár dní jsem to snášel a doufal, že náhodou někde uvidím něco, co s ní souvisí. Neviděl. Pak jsem začal cíleně hledat a našel jsem na w3bsit3-dns.com vysvětlení. Ukázalo se, že oznámení byla rozdělena na důležitá a ne tak důležitá a je možné určit, která oznámení chcete dostávat. Pokud nastavíte tuto možnost Vždy pozor , pak ruka zmizí, pokud je to možné Pouze důležitá upozornění pak se objeví ruka. Abych byl upřímný, několikrát jsem ruku sejmul, ale z nějakého důvodu se stabilně vrací. Proč? Ještě nevím

Zde je ve skutečnosti postup „odebrání“ této ruky:

Výše uvedená metoda není vůbec složitá. Ale výsledku můžete dosáhnout ještě rychleji a snadněji: stiskněte jedno ze dvou tlačítek ovládání hlasitosti - na obrazovce se objeví okno, které vám umožní změnit úrovně hlasitosti pro různé součásti systému, stejně jako pozornost, ovládání Výstražné režimy ... Je pravda, že z nějakého důvodu jsou stejné Výstražné režimy se v tak rychlé verzi nezobrazují vždy. Zatím jsem nenašel žádné vzory, ale abych byl upřímný, neublížilo mi to a hledal jsem.

Pár slov o nainstalované programy... Přestože jsem před zahájením procesu aktualizace dostal varování, že některé programy budou odstraněny, protože nejsou součástí nového firmwaru, přesto většina programů přežila.


Jediná věc, která mě trochu mrzí, je program s atypickým názvem „Dvě aplikace“. I když musím přiznat, že jsem ani okamžitě nepochopil, o co jde: Přemýšlel jsem, které dvě aplikace budou odstraněny, bylo skutečně nemožné určit jména.

Ano, program, který se objevil ve verzi 4.4.2 a umožňoval sdílet obrazovku mezi dvěma současně běžícími aplikacemi, zapadl do zapomnění. Po pravdě řečeno, jeho funkčnost byla poměrně slabá, protože bylo možné provozovat současně velmi omezený rozsah aplikací. Pokud mi paměť slouží, použil jsem ji jen jednou nebo dvakrát, jen abych viděl, co to je. Možná někomu budou chybět příležitosti poskytované tímto programem, ale nějak jsem nebyl nijak zvlášť rozrušený. I když se mi samozřejmě moc nelíbí, když mi odeberou to, co bylo dáno dříve.

Několik dalších poznámek k programům. Poté, co jsem přešel k novému tabletu, jsem na nějakou dobu nainstaloval programy, které jsem použil na svém předchozím zařízení. Některé z nich se staly, ale nyní o nich nemluvíme. Mluvíme o těch programech, v jejichž chování se něco změnilo. Samozřejmě jsem měl čas vyzkoušet ne všechno, ale tady jsem zatím našel.

TuniIn Radio Pro, mimochodem zakoupené, pro mě na KitKatu nefungovalo. Všechno proběhlo hladce - dokud se fronta nedostala přímo k poslechu rozhlasové stanice. To znamená, že program byl spuštěn, vybral jsem skupinu rozhlasových stanic, například Místní rozhlasové stanice, vybral konkrétní stanici (například RockFM, Radio Jazz a obecně jakoukoli stanici), po které program selhal s chybou. Někdy se dokonce ozval zvuk, ale program stále havaroval. Čas plynul, byly vydány aktualizace TuneIn Radio, ale nic se nezměnilo. Po upgradu na pět však problémy magicky zmizely, nyní vše funguje bez jakýchkoli stížností.

Další pozitivní změnou je kancelářský balík SoftMaker Office HD, který je také spravedlivým nákupem. Programy v něm fungovaly dobře na tabletu Samsung. Když jsem tyto programy nainstaloval na nový tablet, vůbec by se nespustily. Po chvíli byla vydána aktualizace pro tuto kancelář a situace se poněkud zlepšila: začaly se spouštět programy, ale v průběhu práce se v oblasti nabídky (horní řádek okna programu) nahromadily nějaké podivné grafické artefakty. Při přepnutí na plochu (nebo jinou aplikaci) a zpět artefakty zmizely, ale ne na dlouho. Po aktualizace systému Android všechny programy obsažené v balíčku fungují jako hodinky.

No, malý negativní bod. Velmi aktivně používám program s názvem Videorekordér. I za ni jsem dal peníze. Program fungoval dobře na novém tabletu, žádné stížnosti a funkce, které nebyly k dispozici na předchozím tabletu, fungovaly, například stabilizace videa. Po aktualizaci OS začal program havarovat na začátku nahrávání. Nejprve jsem si myslel, že došlo k problémům se zápisem na paměťovou kartu - nastavil jsem zápis do programového adresáře na externí MicroSD kartu. Ale poté, co jsem byl schopen vytvořit podadresář v záznamovém adresáři v samotném programu, vyšlo najevo, že použití externí karty s tím nemá nic společného. Pak jsem se rozhodl deaktivovat jednu programovou funkci najednou a první věcí, které jsem se dotkl prstu, bylo zaškrtávací políčko se zaškrtávacím políčkem stabilizace. Po vypnutí této možnosti program začal psát video, ale jeho kvalita klesla. Ne, rozlišení a rychlost streamu - vše zůstalo stejné, ale obraz na záznamu se vznášel ve vlnách. Program má nastavení, které se snaží tento efekt vyhladit, a jeho zapnutí v zásadě trochu pomůže, ale z nějakého důvodu při opětovném vstupu do programu zůstane samotná značka, že je volba zapnutá, ale obrázek se vznáší, jako by byla volba vypnutá ... Pokud se vrhnete na již povolenou možnost, vše se okamžitě normalizuje. S největší pravděpodobností se jedná o chybu v programu, ohlásím to vývojáři a možná autor tuto závadu napraví. Ale skutečnost, že stabilizace videa nefunguje, je trochu nepříjemná. Za prvé proto, že standardní kamerový program má v nastavení možnost stabilizace a po zapnutí je záznam prováděn bez chyb.

Od zvláštních případů souvisejících s programy přejdu k obecnějším vlastnostem systému. Za prvé, množství volné paměti se zvýšilo. Jak jsem již napsal, veškerý můj software zůstal na svém místě. Zároveň musím říci, že tabletu hodně namáhám. Ne z hlediska toho, že neustále hraji hry, ale z hlediska toho, že visí spousta služeb, z nichž některé možná nevyužívám, ale nechávám si to pro každý případ. Nejprve mluvíme o všech druzích poštovních služeb - Outlook, Yandex Mail, GMail, přesněji nyní Inbox. Dále různé cloudové úložiště - Disk Yandex, OneDrive, Disk Google, Dropbox, Box, Asus WebStorage. Pár sociální sítě - Odnoklassniki a Google+. Všemožní poslové - Viber, ICQ, Skype, Hangouts. Všechny tyto programy, tak či onak, spotřebovávají paměť zařízení, i když je nepoužíváte. Ale v zásadě si uvědomuji, o co se chystám.

Uživatelé zařízení Asus vědí, že v oponě Android je aplikace, která vám umožní alespoň dočasně vyčistit paměť. Jmenuje se to v první pětce Čištění a v KitKatu se to jmenovalo bizarněji - Zisk. Když otevřete oponu, ikona této aplikace zobrazuje množství volné paměti v tuto chvíli. Když byla tedy do tabletu nainstalována verze Android 4.4.2, toto číslo kolísalo v rozmezí 200-300 MB a ikona byla nejčastěji žlutá. Nyní se množství volné paměti mění ze 400 na 600 MB a ikona je téměř stále zelená. Tato změna je pravděpodobně způsobena změnou virtuální strojpoužitý v Lollipop, ale možná se něco změnilo v samotném firmwaru, například Asus něco odstranil. Obecně je třeba na to přijít.

Změna virtuálního stroje měla ovlivnit další dva parametry - výkon a spotřebu energie. Co mohu říci o výkonu. Myslím, že nic. Nehraji igruhi, nemám moc rád papoušky (Antutu atd.). Samotný tablet je docela výkonný, takže jsem si ani na KitKatu, ani nyní v Lollipopu nevšiml žádných brzd. Všechno je hladké a bezchybné. Když řídím, mám funkční DVR, Arrow, Mapy (buď Yandex nebo Google), také poslouchám hudbu pomocí Kodi a po tom všem stále reaguje na přepnutí na plochu a spouští další programy obecně - zvíře.

A o spotřebě energie ... V zásadě mě poslední aktualizace KitKat zbavila možnosti stěžovat si na neúčinnost zařízení. Pokud po počáteční instalaci KitKat ztratil tablet přes noc 20–30 procent svých energetických rezerv, pak po aktualizaci na 31. verzi firmwaru se ztráty staly docela přijatelnými - ze dvou na pět procent za noc. Upgradování na Lollipop v tomto smyslu nic nezhoršilo a za to moc děkuji. Pokud jde o spotřebu při zatížení, zde mohu znovu uvést zkušenost s provozem v automobilu: všechny stejné počáteční - DVR, Arrow, Yandex Navigator, Kodi, jas obrazovky někde kolem 75-80 procent - jasný, slunečný den, plus všechno bezdrátová rozhraní včetně, a tak během cesty - asi dvě hodiny - byla baterie vybita na 57 procent. Podle mého názoru docela hodný. Mimochodem, pod KitKatem to bylo zhruba stejné.

No, a poslední - zase seznam, ale ne v pořadí podle důležitosti - který bych chtěl poznamenat. Jde o práci s externí karta Paměť. Jak jsem se dostal ze situace, kvůli omezením KitKat na zápis na externí paměťovou kartu. Vlna negativity byla podle všeho tak silná, že Google musel něco poslouchat a něco změnit. Nebo možná něco změnili, aniž by někoho poslouchali. Ale nechme tuto důležitou otázku stranou (poslouchali jsme / neposlouchali), pojďme k samotným změnám.

Google povolen programy třetích stran zapisovat na paměťovou kartu. V zásadě to dříve nezakázal, pouze oprávnění byla nastavena takovým způsobem, že za normálních podmínek měl přístup k zápisu na celou externí kartu pouze běžný správce souborů. Možná, že někteří výrobci také povolili přístup ke svým dalším programům, ale narazil jsem pouze na správce souborů. Nyní může psát jakýkoli program, ale musí být splněno několik podmínek.

Nejprve musí program využít výhod nových funkcí Storage Access Framework, konkrétně použít záměr OPEN_DOCUMENT_TREE a několik nových nebo aktualizovaných funkcí SDK.

Zadruhé, uživatel se musí sám rozhodnout, které větvi (nebo větvím) souborového systému poskytne přístup k té či oné aplikaci. To znamená, že můžete udělit přístup k celé kartě, pokud v reakci na žádost o přístup zadáte její kořen, nebo můžete udělit přístup pouze ke konkrétní složce a jejím podřízeným položkám. Obecně budete muset převzít odpovědnost sami za sebe, a pokud se něco stane, budete také muset vinit jen sebe.

Třetí je štěstí. Na mém tabletu vše fungovalo, jak mělo, se zapnutým přítelem HTC jeden M8 - nefungoval, i když online je tam video , jak přesně na tomto modelu smartphonu vše úžasně pluje. Existuje však předpoklad, že to nefungovalo kvůli skutečnosti, že karta v jeho telefonu byla naformátována nějak špatně, možná bez zadání názvu svazku, nebo možná ve špatném systému souborů.

Ve skutečnosti je to radostná i smutná zpráva současně. Radost - protože nyní nemusíte mít root přístup k zařízení a můžete jít nad rámec adresáře aplikace. Smutné - protože dokud se vývojáři nerozhodnou používat nové API a vydávat nové verze svých programů, nic nebude fungovat. Z mé zkušenosti: správce souborů ES Explorer již získal podporu pro nové API a podařilo se mi dát mu oprávnění k zápisu na celou externí SD kartu a správce souborů Total Commander to nezískal a stále nemůže zapisovat na kartu MicroSD - nikde, kromě svůj vlastní adresář. Takhle.

Ve skutečnosti je v celém tomto příběhu se záznamem na externí paměťovou kartu spousta nuancí. Například jste dali přístup k některým programům, ale k některým jste zapomněli. Kde hledat Chápu, že v současné době - \u200b\u200bnikde. To je v zásadě vidět, ale ne na samotném tabletu, ale na počítači, pokud k němu připojíte tablet a použijete program adb. Zde je příkaz, který potřebujete:

Poskytovatelé aktivity adb shell dumpsys

Ale jak získat to samé na tabletu - nenašel jsem to.

Další otázka. Dali jste nějaké aplikaci přístup k zápisu do složky a pak jste si to rozmysleli a chtěli to odnést. Existuje taková možnost? Naštěstí ano. Ale se ztrátami. První, velmi radikální způsob - můžete program odinstalovat a znovu nainstalovat. Druhá metoda není tak zásadní, ale také není ideální - musíte vymazat data aplikace v Nastavení zařízení. Přirozeně, spolu s přístupovými právy, budou smazána i další data programu, takže vyvstane logická otázka ohledně praktické použitelnosti tato metoda... Nebyly nalezeny žádné jiné metody, snad ještě ne. Obě metody můžete použít, pokud nejprve zálohujete programová data a po provedení jedné z metod do akce je obnovíte. Zde však vyvstává otázka ohledně možností zálohování - budou se zálohovat pouze data, nebo budou data spolu s oprávněními? Pokud s oprávněními, pak po obnovení, dobře, rozumíte ... To vše silně závisí na konkrétních použitých aplikacích, takže byste měli být velmi opatrní. A to je další dobrý důvod k přemýšlení, než se podíváme do starověké Moskvy, bez souhlasu příslušných orgánů, vydat práva jakékoli aplikaci pro přístup k systému souborů externí karty.

Dále více. Co se stane, když vyměníte kartu vloženou do slotu tabletu? Odpověď zní: budete muset samostatně poskytnout přístup ke každé kartě, kterou vložíte do zařízení. V zásadě je to pravděpodobně logické. To znamená, že jste správci souborů poskytli přístup ke kořenovému adresáři karty, poté jste jej vyjmuli a vložili další. Správce souborů nebude na novou kartu zapisovat, budete muset znovu udělit přístup. Když však do tabletu vrátíte první kartu, správce souborů na ni bez problémů zapíše.

Ještě jedna otázka. Zde jste udělili přístup k aplikaci v nějaké složce, nikoli v kořenovém adresáři. Uplynul čas a musíte povolit přístup pro zápis ke stejnému programu do jiné složky na stejné kartě. Můžu to udělat? V zásadě je to důsledek předchozího případu, takže odpověď je ano, můžete. To znamená, že systém pro každou aplikaci si zapamatuje seznam adresářů, kterým jste udělili přístup pro zápis.

Nyní nuance spojená s aplikacemi nainstalovanými v tabletu pro každého uživatele, jehož profil je vytvořen v zařízení. I zde je vše logické - pro každého uživatele zařízení jsou uložena jeho vlastní přístupová práva k aplikacím, to znamená, že každý je kovářem svého vlastního štěstí, nebo, chcete-li, svým vlastním zlem Buratino.

A samozřejmě hodně záleží na kvalifikaci vývojářů. Může se stát, že libovolnému programu udělíte přístup k zápisu na externí kartu a po restartování tabletu zjistíte, že k němu není přístup. Za takovou situaci je odpovědný pouze vývojář programu - neobtěžoval se uložit přijaté povolení. Možná byste se nad tím měli zamyslet a hledat alternativu k tomuto programu, protože nikdy nevíte, co takový programátor nepředvídal.

A takto vypadá proces vydávání oprávnění k zápisu na kartu microSD pro ES Explorer:

Potřebujeme externí kartu

Zkusme něco vytvořit přímo u kořene mapy






Musíme zobrazit SD kartu


Tady je naše externí paměťová karta



No, možná je to ono.

P.S. Stalo se, že od chvíle, kdy jsem psal tento materiál, uplynulo dost času. Bylo to možné publikovat mnohokrát, ale stále jsem tahal, není jasné proč. Přesněji řečeno, vím proč - rozhodoval jsem se, jak nejlépe představit sérii snímků obrazovky popisujících konkrétní proces: jako jednoduchou sekvenci vložených obrázků nebo jako prezentaci. Nakonec bylo rozhodnuto použít (alespoň prozatím) sekvenci obrázků. Jak se to všechno stalo, je téma pro samostatný příspěvek. Mezitím vše zůstává tak, jak to je, škoda, že bylo stráveno hodně času. Jedinou útěchou je, že to není marné. Navíc došlo k příjemné události. V tomto příspěvku jsem napsal, že přístup k externí paměťové kartě bude k dispozici pouze v případě, že autoři programu začnou používat nové API. Jako příklad programu, ve kterém se nové API nepoužívá, jsem uvedl Total Commander. Takže když jsem zdržoval publikaci, byl aktualizován Total Commander a teď také ví, jak pracovat s externí paměťovou kartou v android styl Lízátko. Níže poskytuji sérii snímků obrazovky popisujících proces vytváření nového adresáře v kořenovém adresáři externí paměťové karty pomocí Total Commander:

Výběr externí paměťové karty
a vyberte požadovanou položku v nabídce
Možná je to všechno.

Mnoho šťastných majitelů zařízení s verzí 4.4.2 již pravděpodobně čelilo problému nemožnosti zápisu dat na kartu s většinou aplikací nainstalovaných v zařízení. Vyrobeno podle ujištění Google, aby se operační systém Android 4.4.2 KitKat stal bezpečnějším systémem.

Omezení zápisu na kartu se týkají především aplikací nainstalovaných ze zdrojů třetích stran. A co je nejdůležitější, Android 4.4.2 KitKat zakazuje úpravy souborů, které přímo nesouvisejí s aplikacemi, které chtějí tuto úpravu provést. Proto nemožnost záznamu na SD kartu.

V praxi toto omezení doslovně znamená následující: používat standardní instant messenger, editory fotografií, správci souborů! Protože pokud vývojář vašeho softwaru nebyl schopen včas reagovat a přidat například aktualizaci do svého editoru fotografií, pak budou všechny vaše upravené fotografie „živé“, když je spuštěný editor fotografií - nebudete moci své upravené fotografie zapsat na kartu!

Pokročilejší uživatelé, kteří neustále kopírují data z flash disku do počítače a zpět, se mohou setkat s takovým problémem: počítač detekuje vaše „“ soubory, vidí je, ale nemůže s nimi nic dělat - přístup odepřen! Tento problém lze opravit instalací aplikace do zařízení, která umožní přístup. Ale tato aplikace bude fungovat pouze na zařízeních ROOT.


Jak SDFix funguje: KitKat Writable je jednoduchý: po instalaci a spuštění aplikace kliknete na Pokračovat, souhlasíte s podmínkami a znovu kliknete na Pokračovat. Pokud je aplikace Superuser již ve vašem zařízení nainstalována, měli byste SDFix povolit přístup k ROOT adresářům v ní.


SDFix KitKat Writable MicroSD v průběhu své práce změní soubor /system/etc/permissions/platform.xml, do kterého zapíše oprávnění k zápisu a úpravám souborů aplikacemi, které mají oprávnění WRITE_EXTERNAL_STORAGE. Originál upraveného souboru SDFix: KitKat Writable MicroSD najdete pod názvem platform.xml.original-pre-sdfix. Původní soubor můžete kdykoli později obnovit.

Pro ty „nejnáročnější“ uživatele s ROOT přístupem na jejich zařízení existuje možnost provést opravy požadovaný souboraniž byste se uchýlili k SDFix: KitKat Writable MicroSD.

Chcete-li to provést, spusťte správce souborů, který může upravovat soubory, najděte soubor platform.xml na / system / etc / permissions / a otevřete jej pomocí vestavěného editoru.


Poté najděte sekce android.permission.WRITE_MEDIA_STORAGE a android.permission.WRITE_EXTERNAL_STORAGE a přidejte řádky s kódem do těchto sekcí:







Poté uložte upravený soubor do editoru.

Po restartu zařízení budou vyřešeny všechny nepříjemné problémy spojené s neschopností zapisovat a upravovat soubory na flash kartu.

Při vývoji konkurenční aplikace jsem narazil na problém s ukládáním databáze. Problém byl v tom, jak identifikuji externí paměťovou kartu. Vyhledávání na webu obecně nedalo přesnou odpověď. Zkombinováním všech výsledků, které jsem našel, jsem tedy dal dohromady svoji třídu. Pokud má někdo zájem, podívejte se pod řez.

Začněme tedy teorií.

Terminologie

Google nám říká, že existují následující koncepty:
  1. Interní ( vnitřní) paměť je součástí paměťové karty zabudované v telefonu. Ve výchozím nastavení je složka aplikace chráněna před přístupem jiných aplikací (pomocí interního úložiště).
  2. Externí ( externí) paměť je sdílené „externí úložiště“, tj. může to být buď část vestavěné paměti, nebo odstraněné zařízení. Obvykle je to součást vnitřní paměti, protože jsem naposledy viděl vyměnitelné zařízení v systému Android 2.2, kde interní paměť měla asi 2 GB a připojená paměť se stala externí (pomocí externího úložiště).
  3. Smazáno ( odnímatelný) paměť - všechna úložiště, která lze ze zařízení odebrat bez „chirurgických“ zásahů.

Před KitKat 4.4 API neposkytovalo funkce pro získávání cest k externí paměti. Počínaje touto verzí (API 19) se objevila veřejná abstraktní funkce Soubor getExternalFilesDirs (String type), který vrací pole řetězců s cestami do interní a externí paměti. Ale co naše SD karta, která je vložena do slotu? Opět se k tomu nemůžeme dostat.

výsledky hledání

Abych odpověděl na položenou otázku, obrátil jsem se na vševědoucí Google. Ani on mi však nedal jasnou odpověď. Bylo zvažováno mnoho možností pro určení od použití standardních funkcí, které vedou k externí paměti, ale nemají nic společného s vyměnitelnými úložnými zařízeními, až po zpracování pravidel pro připojení zařízení (Android funguje na jádře Linuxu). V posledních případech byly použity „pevné“ cesty ke složce s připojenými zařízeními (v různé verze tento adresář je jiný). Nezapomeňte, že pravidla pro připojení se mění z verze na verzi.

Nakonec jsem se rozhodl spojit všechny znalosti, které jsem získal, a napsal svou vlastní třídu, která nám může vrátit cesty k externím a vyměnitelným zařízením.

Popis kódu

Třída byla vytvořena MountDevice, který obsahuje cestu k zařízení, typ zařízení a určitý hash.
Existují dva typy zařízení ( vnitřní paměť Nedotkl jsem se toho, protože k němu lze přistupovat prostřednictvím systémového API).

Veřejný výčet MountDeviceType (EXTERNAL_SD_CARD, REMOVABLE_SD_CARD)
A třída byla vytvořena Pomocník úložiště, který vyhledává dostupné paměťové karty.

Třída StorageHelper implementuje dvě metody vyhledávání - prostřednictvím prostředí systému ( životní prostředí) a pomocí nástroje Linux připojit, respektive výsledek jeho implementace.

První metoda - prostředí
Při práci s prostředím používám standardní funkci getExternalStorageDirectory () k získání informací o externí paměti. K získání informací o odstraňované paměti používám proměnnou prostředí " VEDLEJŠÍ PAMĚŤ".

Externí paměť je vždy jedna a obvykle vždy existuje, takže zkontrolujeme její čitelnost, vypočítáme hash a zapamatujeme si to. Může být odstraněno hodně paměti, takže je nutné rozdělit výsledný řetězec na oddělovač a zkontrolovat každou hodnotu.

Funkce FillDevicesEnvirement

Řetězcová cesta \u003d android.os.Environment.getExternalStorageDirectory () .getAbsolutePath (); if (! path.trim (). isEmpty () && android.os.Environment.getExternalStorageState (). equals (android.os.Environment.MEDIA_MOUNTED)) (testAndAdd (cesta, MountDeviceType.EXTERNAL_SD_CARD);) // Získejte odstranění rawSecondaryStoragesStr \u003d System.getenv ("SECONDARY_STORAGE"); if (rawSecondaryStoragesStr! \u003d null &&! rawSecondaryStoragesStr.isEmpty ()) (// Všechny sekundární SD-KARTY se rozdělí do pole final String rawSecondaryStorages \u003d rawSecondaryStoragesStr .split (File.pathSeparator); MountDeviceType.REMOVABLE_SD_CARD);))


Řešení je převzato z stackoverflow. Odpověď je někde tam dole.
Metoda dvě - montáž
Jelikož jsem nemohl dlouho přimět systém, aby mi řekl cestu k vymazané paměti, rozhodl jsem se hledat ve směru připojených zařízení. Systém má konfigurační soubory, které popisují pravidla připojení externí zařízení... Všechno je v pořádku, ale v systému Android verze 4. * Tento soubor není k dispozici pouhým smrtelníkům, takže tuto metodu nebudu považovat.

Vraťme se k nástroji pro připojení. Při spuštění bez parametrů vrátí příkaz seznam připojených souborových systémů. Zařízení, která mají být odstraněna, mají obvykle formát systému souborů FAT, proto vybereme řádky, které mají charakteristiku " tlustý". Externí paměť bude charakterizována parametrem" pojistka".

Poznámka: Při použití této metody není vždy správné (s největší pravděpodobností jsem něco nezohlednil) jsou určeny typy připojených zařízení. Rozdíl jsem si všiml na různých verze pro Android... Tuto metodu lze proto použít jako další.

Funkce FillDevicesProcess

try (Runtime runtime \u003d Runtime.getRuntime (); proc \u003d runtime.exec ("mount"); try (is \u003d proc.getInputStream (); isr \u003d new InputStreamReader (is); br \u003d new BufferedReader (isr); while ( (line \u003d br.readLine ())! \u003d null) (if (line.contains ("secure")) continue; if (line.contains ("asec")) continue; if (line.contains ("fat") ) (// TF card String columns \u003d line.split (""); if (columns! \u003d Null && columnss.length\u003e 1) (testAndAdd (columns, MountDeviceType.REMOVABLE_SD_CARD);)) else if (line.contains (" fuse ")) (// interní (externí) // úložiště String columns \u003d line.split (" "); if (columns! \u003d null && columnss.length\u003e 1) (// mount \u003d mount.concat (columns +" \\ n "); testAndAdd (sloupce, MountDeviceType.EXTERNAL_SD_CARD);)))) konečně (...)) catch (Výjimka e) (...)

Zdroj celá třída není nikde jinde. Jeden z těchto dnů se pokusím zveřejnit na gitHub.

Kdo další používá jaké metody?

Štítky: Přidat štítky

koupil jsem nový mobil Samsung Galaxy S5 a okamžitě narazil na problém na operačním sále systém Android... Přesněji řečeno, verze Android 4.4 KitKat. Tato verze systému Android zavádí novou funkci vývojářů Google.

Nyní je aplikacím odepřen přístup k úpravám souborů na SD kartě!To vede k tomu, že některé aplikace nefungují!

Ukážu vám, jak tento problém obejít!

Dobré odpoledne, vážení čtenáři našeho blogu!

Druhý den jsem si koupil nový telefon! Samsung Galaxy S5!

VYUŽÍVÁNÍ NOVÉHO TELEFONU

Gratuluji k úspěšnému nákupu, o kterém jsem snil již několik let! Ukázalo se, že telefon byl pozoruhodně rychlý, výkonný, krásný a pohodlný!

Už jsem měl telefon HTC (je mu asi 4–5 let) se systémem Android. Jeden z prvních telefonů s takovým systémem (v době nákupu). Studoval jsem to nahoru a dolů, několikrát jsem bleskoval systémem, vybral jsem si firmware Android, který byl mnohem funkčnější než v té době oficiální.

Pro ty, kteří to nevědí, je blikání náhradou za operační systém telefonu. No, něco jako přeinstalovat Windows na počítači.

Trvalo to dlouho, vyšlo mnoho verzí Androidu (v době nákupu jsem měl Android 2.2). Nové verze a telefony, na které byly nainstalovány, jsou mnohem lepší než můj starý smartphone. Proto jsem byl velmi překvapen výkonem, rychlostí a funkčností.

Užil jsem si to asi 4 dny. Pak narazil na problém!

PROBLÉM! Souborový systém zakazuje úpravy souboru!

Po další aktualizaci byl operační systém samotného telefonu aktualizován na verzi Android 4.4

Představte si moje překvapení, když jsem nemohl upravit jediný soubor na svém vlastním telefonu! Nejprve jsem zhřešil na závady, zkontroloval jsem různé složky a pokusil se upravit soubor z počítače (připojením kabelu k telefonu). Neexistoval způsob, jak upravit soubory!

Po prohlédnutí informací o operačním systému v Nastavení - O zařízení - Stav SE pro Android jsem viděl slovo Vynucování.

Toto kódové slovo Google znamená verzi systému Android, kde jsou práva aplikací omezena na úrovni jádra operačního systému! EMAE! No chápu to!

Řešení jsem se obrátil na internet

Zde jsem zjistil:

X všiml jsem si, že můj telefon je zcela nový a má 5letou záruku výrobce!

Pokud získáte přístup typu root (práva správce v systému Android), záruka od výrobce (Samsung) zmizí. Ve skutečnosti některé hackerské weby tvrdí, že existují speciální metody, jak vrátit počítadlo továrny do původní polohy. Počítadlo od výrobce je vynulováno, když je přijat root přístup. To znamená, že servisní společnost zjistila, že telefon byl jailbroken a že se na něj nevztahuje záruka.

Chcete-li ovlivnit tento čítač, musíte rozebrat telefon a dostat se do mikroobvodů. Nenechte se proto oklamat takovými podvody!

Pokud získáte root přístup, záruka zmizí! Zkontrolováno na mém starém telefonu!



V nové verzi systému Android 5.0 používá Google jinou logiku odepření přístupu k externím paměťovým kartám SD.

1. Jak funguje nová logika?

Aplikace se do systému instalují v kompilované podobě. To znamená ve formě připravené ke spuštění. To zlepšuje výkon, multitasking a snižuje vybíjení baterie.

Jinými slovy, systém měl dříve distribuční soubory ( instalační soubory) a systém jej při spuštění zkompiloval před spuštěním. Jinými slovy, soubory byly zabaleny; během spuštění aplikace byly soubory rozbaleny a spuštěny.

V systému Android 5.0 jsou nyní všechny aplikace nainstalovány v kompilované rozbalené podobě. Výsledkem je, že aplikace využívají více místa, ale spouštějí se rychleji!

2. K čemu to vede?

  1. Přístupová práva jsou aplikaci přidělena BĚHEM INSTALACE!
  2. Uživatel má právo během instalace si sám nastavit práva ke konkrétní aplikaci.
  3. Uživatel může změnit práva aplikace. Pokud například důvěřujete programu, můžete mu povolit úpravy souborů na externí paměťové kartě.

CHCI UPDATE ANDROID TO VERSION 5.0 to problém vyřešit!

Pokud OFICIÁLNĚ aktualizuji verzi operačního systému, ULOŽÍM ZÁRUKU!

Ale potřebuji verzi Androidu pro Rusko (konkrétně pro ni, a ne pro jinou zemi), abych netrpěl anglickými slovy v rozhraní.

Pokusím se ji najít.

Oficiální program podpory Telefony Samsung Kies říká, že můj telefon je aktualizován na nejnovější verze Podle.

Na oficiálních stránkách jsem nenašel oficiální aktualizace pro Android (pro náš region).

Na fórech jsem našel informace, že Google v lednu 2015 vydal verzi firmwaru pro Rusko. Na zařízeních klientů se ale implementuje velmi pomalu.

Můžu tedy počkat, dokud moje zařízení neobdrží zprávu o aktualizaci softwaru. Poté můžu aktualizovat Android.