Как да намерите главната папка на флаш устройство. Къде е главната папка на флаш устройство или карта с памет

Различна информация в електронен вид може да се съхранява на специално устройство, наречено карта с памет. Предназначен е за съхранение на текстови документи, аудио и видео записи, изображения. Основното предимство на този тип памет е лекотата на запис на информация и компактността на устройството заедно със значителни количества съхранявани данни.

Вътрешната памет е представена от RAM, постоянна и кеш памет. Предимствата му включват високоскоростна производителност, а недостатъкът е ограниченото количество съхранявани данни.

Много често съвременният потребител на персонален компютър и друго електронно оборудване трябва да се сблъска с такова предложение: "инсталиране в корена на картата с памет" или "копиране в корена на картата". Може да се намери навсякъде, тъй като съвременните технологии все повече започват да поддържат карти на трети страни за увеличаване на вътрешната памет.

Картите с памет са стандартизирани. Те имат определени габаритни размери и разположението на контактните подложки в зависимост от вида на устройствата, за които са предназначени.

Това включва лаптопи, таблети, смартфони, цифрови фотоапарати и дори PSP с други игрови конзоли. Следователно, за правилна работа с тях, не може да се направи без ясна представа какво може да означава изразът "корен на карта с памет" и къде може да се намира.

Името на мястото за запис на данни на картата идва от английската дума root - "корен, корен", което означава нещо първично, първично. Той влезе в употреба в самото начало, когато започнаха да се появяват компютрите. На тях коренът се наричаше самото съдържание на устройството, тоест мястото, откъдето е стартирана системата и където могат да бъдат записани данни. Всъщност това обозначение изобщо не се е променило по отношение на текущите карти с памет.

Основна директория

Днес самата директория, която се намира на картата, се нарича корен на картата с памет. Това е същата папка, която стартира, когато щракнете върху иконата с карта с памет в смартфон или. Просто думата корен беше преведена дословно и сега е нейният руски аналог, който се използва за обозначаване на самата карта. По този начин, ако бъдете помолени да копирате данни в корена, тогава не е нужно да създавате нищо допълнително на картата с памет, а просто да копирате необходимите файлове в нея, в основната директория.

Мисля, че всеки се е сблъсквал с проблема на злите "авто-бегачи". И има много начини за решаването му: софтуер с отворен код, скриптове, "танци с тамбура" и т.н. Искам да предложа прост алгоритъм за решение за потребители на OS Windows, който не изисква намеса на трета страна. За да постигнем целта, ни трябват няколко стъпки - по-точно две.

Стъпка № 1 - подготовка

Форматиране на мултимедийната файлова система в NTFS с помощта на ОС.

Без NTFS при избор на опции за форматиране

Ако няма опция за форматиране на файловата система в NTFS, какъвто е случаят с Windows XP, правим следното:

  1. Отиваме в свойствата на флаш устройството;
  2. Отидете в раздела "Оборудване";
  3. Изберете нашата флаш карта и щракнете върху бутона свойства;
  4. Отидете в раздела „Политика“;
  5. Избор на опция за използване на кеша;
  6. Приемаме промени и формат в NTFS;
  7. След това се връщаме обратно към "Бързо изтриване".

Стъпка номер 2 - диференциране на правата

Сега създаваме папка ("работна папка") в корена и веднага задаваме име (в бъдеще е невъзможно да промените името на папката), цялата информация ще се съхранява в нея. Но коренът на папката ще бъде само за четене. Сега разграничаваме правата:
  1. Отиваме в сигурността - отворете свойствата на флаш устройството, раздела "Сигурност";

    Ако няма такъв раздел, правим следното

    1. Отидете на "Опции на папката" в "Контролен панел";
    2. В раздела за изглед в списъка "Допълнителни параметри" намираме параметъра, съдържащ думите "общ достъп" и "(препоръчително)";
    3. Премахваме галата.
    Сега разделът се появи
  2. Щракнете върху бутона "Разширени";
  3. В прозореца, който се отваря, отидете на раздела "Собственик" и натиснете бутона "Промяна";

    За XP

  4. Поставяме отметка „Замяна на собственика на подконтейнери и обекти“;
  5. Ние избираме себе си и ставаме собственик на обекта;
  6. Затваряме диалоговите прозорци по искане на ОС с бутона "OK" и след това отново отваряме "сигурност" и "разширени";
  7. Променете разрешенията - за това отидете на сигурността и в раздела "Разрешения" щракнете върху бутона "Промяна на разрешенията", изтрийте съществуващите права;

    За XP

    (в Windows XP няма бутон „Промяна на разрешенията“, веднага действаме там)

  8. Добавете групата "Всички" - натиснете бутоните "Добавяне", "Разширени", "Търсене", изберете групата "Всички", "ОК", "ОК" от списъка;
  9. В прозореца, който се отваря, задайте настройките за разрешения за групата „Всички“:
    • „Прилагане към: За тази папка, нейните подпапки и файлове“;
    • Поставете следните квадратчета за отметка в полето „Разрешения“:
      1. Разрешаване: "Пълен контрол";
      2. Отказ: Промяна на собственика, Промяна на разрешенията, Изтриване, Изтриване на подпапки и файлове, Написване на допълнителни атрибути, Написване на атрибути, Създаване на папки / добавяне на данни, Създаване на файлове / запис на данни.
  10. Приемаме промените, отиваме в създадената по-рано папка в корена на флаш картата и правим почти същите операции;
  11. Смяната на собствеността следва познат модел;
  12. Премахване на съществуващи права чрез премахване на отметката от квадратчето „Добавяне на разрешения, наследени от родителски обекти“ в раздела „Разрешения“;
  13. В диалоговия прозорец, който се показва, изберете "Изтриване";
  14. Добавете групата "Всички" (вече знаем как) и задайте параметрите на разрешенията:
    • „Прилагане към: За тази папка, нейните подпапки и файлове“;
    • Поставете отметка в квадратчето Разрешаване: "Пълен достъп".
  15. Отново добавете групата "Всички" и задайте параметрите на разрешенията:
    • „Прилагане: Само за тази папка“;
    • Поставете следните квадратчета за отметка „Отказ“ в полето „Разрешения“:
      „Промяна на собственика“, „Промяна на разрешенията“, „Изтриване“, „Запис на допълнителни атрибути“, „Запис на атрибути“
професионалисти
+ Няма начин да създавате/изтривате файлове и папки в основата на флаш картата. Следователно вратичката за "автоматични бегачи" е затворена.
+ В "работната папка" пълен достъп - това, което искаме, го връщаме обратно (поставете стреса сами).
+ Файлова система NFTS - точно за лична употреба. (IMHO)
Минуси
- Не е възможно да използвате елемента от менюто "Изпращане", за да копирате информация на нашето USB флаш устройство, т.к главната директория е затворена за запис. Трябва да се копира в "работната папка".
- Няма как да преименуваш "работната папка" - в корена, само чети.
- Файлова система NTFS - не е подходяща за устройства, които четат само FAT (музикални/видео плейъри, смартфони, фотоапарати и др.).
Забележки
  • Тази операция се извършва най-добре на "здрава машина". В противен случай можете да създадете immortal-autorun;
  • НА Windows XP, когато се опитах да изтрия "работната папка", тя остана (както трябва да бъде), но всичко вътре беше изтрито;
  • Но в Window 7 всички файлове остават, когато се опитате да изтриете "работната папка";
  • Вътре в "работната папка" не ви спасява от зловреден софтуер, който създава exe "schnick с името на папката, когато я отворите.

Тогава се появи Android Lollipop, а с него и нови функции за работа със SD карта. Появи се SAF(Storage Acces Framework), се появи нов Intent ACTION_OPEN_DOCUMENT_TREE, с който можете да изберете корена на SD картата и след това да я използвате за вашите нужди. Всъщност SAF все още беше на KitKat, но без това намерение нямаше никакъв смисъл от него, тъй като за достъп до файловете на картата трябваше да използвате Intent ACTION_OPEN_DOCUMENT, който, съдейки по името, позволява на потребителя да избере файл, който той иска да редактира ръчно чрез инструмента за избор на системата. Добре, ако потребителят има 5000 файла, ще го направи ли? Не.

Идентифициране на външни устройства за съхранение на вашето устройство

Ще започна с най-болезнената тема при работата с карти с памет. Имаме прекрасен метод в Android.

Файл Environment.getExternalStorageDirectory ()

Както подсказва името, това е, от което се нуждаете. „Външен“ означава „външен“, нали? Но не трябва да разчитате на този метод. Може да върне пътя към вътрешната памет, може и към картата, но това се случва различно на всяко устройство. Тази ситуация до голяма степен се дължи на различните производители на телефони и техния модифициран фърмуер и корпуси. Моята идея е, че методът getExternalStorage () може да върне пътя не към действителната SD карта, а към тази, която производителят счита за външно устройство. Тук възниква объркване в дефинициите. Външното устройство не е непременно флаш устройство: на някои устройства това е вътрешна памет, на някои наистина е SD карта. Точките за монтиране на картата могат да бъдат всякакви:

  • / съхранение / extSdCard /
  • / съхранение / sdcard1 /
  • / съхранение / sdcard0 /
  • / mnt / external_sd /
  • / mnt / външен /
  • / mnt / sdcard2 /
  • / съхранение / sdcard0 / external_sdcard /
  • / съхранение / сменяемо / sdcard1 /
  • / сменяеми / microsd
  • / mnt / media_rw / sdcard1
  • / mnt / emmc

И това не е голям проблем, докато не се сблъскате сами.

Има много теми в StackOverflow, в които куп много различни опции за дефиниране на флаш устройство, вариращи от изброяване на всички възможни комбинации от точки за монтиране, опит за получаване на променливи на java среда System.getenv ("EXTERNAL_STORAGE"), System.getenv (" SECONDARY_STORAGE") и завършва с анализиране на системния файл /system/etc/vold.fstab. Тези методи работят, но всеки само в конкретен случай. Нито един от методите не обхваща всички устройства или работи изобщо. И ако изглежда, че всички устройства са открити правилно, тогава винаги ще има някакво устройство, на което картата не е открита по тези методи. Изпробвал съм почти всички методи.

За да разбера мащаба на проблема, ще кажа, че се занимавах с него около четири месеца. Този проблем съществува от 2011 г., но все още няма точно решение. За известно време бях доволен от този повече или по-малко работещ код:

ArrayList allPaths = нов ArrayList<>(); ArrayList sdPaths = нов ArrayList<>(); for (Файлов файл: mContext.getExternalFilesDirs ("external")) (if (file == null) (продължи;) int index = file.getAbsolutePath (). lastIndexOf ("/ Android / data"); if (index> 0 ) (Път на низ = file.getAbsolutePath (). Подниз (0, индекс); опитайте (път = нов файл (път) .getCanonicalPath ();) улов (Изключение e) (e.printStackTrace ();) allPaths.add ( път); ако (! file.equals (mContext.getExternalFilesDir ("external"))) (sdPaths.add (път);))

Но също така се срина на някои устройства. И отново, след като получих единица на пазара, тръгнах да търся.

Бях преследван от инструмента за избор на система за Android (също файлов мениджър), в който всички устройства винаги са правилно идентифицирани. Без да мисля два пъти, извадих системния apk с помощта на Root и го декомпилирах.

Просвещение

Открих, че инструментът за избор използва класовете StorageVolume и StorageManager. Той минава през всички елементи на StorageVolume, извлечени с помощта на метода StorageManger.getVolumeList () и извиква методите StorageVolume.getPath () и StorageVolume.getState () за всеки. Уловката е, че тези методи са скрити. Те не са частни, но са маркирани с анотацията @hide. Е, какво можете да направите, получаваме нашето отражение:

StorageManager getStorageManager () (връщане (StorageManager) mContext.getSystemService (Context.STORAGE_SERVICE);) / * Използвайте отражение за откриване на всички хранилища, тъй като android вероятно не работи с USB-OTG работи само на API 19+ * / публичен списък getAllPaths () (Списък allPaths = нов ArrayList<>(); опитайте (класstorageVolumeClass = Class.forName ("android.os.storage.StorageVolume"); Метод getVolumeList = getStorageManager (). GetClass (). GetMethod ("getVolumeList"); Метод getPath = storageVolumeClass.getMethod ("getPath"); Метод getState = storageVolumeClass.getMethod ("getState"); Обект getVolumeResult = getVolumeList.invoke (getStorageManager ()); крайна дължина на int = Array.getLength (getVolumeResult); за (int i = 0; i< length; ++i) { Object storageVolumeElem = Array.get(getVolumeResult, i); String mountStatus = (String) getState.invoke(storageVolumeElem); if (mountStatus != null && mountStatus.equals("mounted")) { String path = (String) getPath.invoke(storageVolumeElem); if (path != null) { allPaths.add(path); } } } } catch (Exception e) { e.printStackTrace(); } return allPaths; }

Въпросът е защо няма официален начин да се направи това? Да, не е напълно надеждно да се използва отражение в боен проект, но няма други опции: ако самата система използва този код, тогава тя работи във всички случаи. Практиката потвърждава това.

SAF (рамка за достъп до съхранение)

Официална документация:

Платформата SAF улеснява потребителите да намират и отварят документи, изображения и други файлове в хранилищата на всички доставчици, с които работят. Стандартен, лесен за използване интерфейс позволява на потребителите да намират файлове и да имат достъп до най-скоро добавените файлове, последователни във всички приложения и доставчици.

p> SAF агрегира доставчици на съдържание (подкласове DocumentProvider). Това са например Google Drive, различни галерии и файлови мениджъри.

SAF дава URI на документи (файлове), които имат разрешения за запис или четене. Можем да кажем, че това е такъв слой над достъпа до файлове. Самият клас File не знае нищо за SAF.

p> За да можете да редактирате данни на картата, трябва да получите URI на корена на SD картата, който ще има правата за редактиране. След това, като използвате този URI, можете да получите URI на всеки файл на картата с памет. За да направите това, трябва да стартирате инструмента за избор на системата, като използвате Intent ACTION_OPEN_DOCUMENT_TREE и да помолите потребителя да избере корена на SD картата (в противен случай нищо няма да работи!).

на снимки:


@TargetApi (Build.VERSION_CODES.LOLLIPOP) void showDocumentTreeDialog () (Intent intent = new Intent (Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult (Intent.createChooser (intent, getString_INQURING )).permission_Dialog).

Тук се случват много важни неща: в onActivityResult ние обработваме избора на потребителя и получаваме заветните права за достъп до картата. По принцип правата се дават до рестартиране на устройството и така, че след повторно рестартиране на устройството да не изпращате потребителя за разрешение, трябва да използвате метода

TakePersistableUriPermission (Uri uri, int modeFlags)

със знамена за писане и четене. След всички тези манипулации трябва да запазите получената Uri SD-карта някъде за по-нататъшна работа с нея, например в SharedPreferences.

@RequiresApi (api = Build.VERSION_CODES.KITKAT) @Override protected void onActivityResult (int requestCode, int resultCode, данни за намерение) (super.onActivityResult (requestCode, resultCode, данни); if (requestCode == REQUEST_CODE_SDPlication (get_ppliconmission) , data.getData ())) (// направете си нещата)) @RequiresApi (api = Build.VERSION_CODES.KITKAT) частно булево takePermission (контекст на контекст, Uri treeUri) (/ * Би било полезно да добавите проверка, че входящият URI е URI на картата. Ще оставя тази задача като упражнение за читателите * / опитайте (if (treeUri == null) (връщане на false;) context.getContentResolver (). takePersistableUriPermission (treeUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION_PERANT_Intent_URIFISSION_GREM | ; sharedPreferences.putString (SD_CARD_URI, treeUri.toString ()); върне true;) catch (Изключение e2) (e2.printStackTrace (); върне false;))

Взаимодействие със SD карта

Читателят вероятно вече се досеща, че няма да можем да взаимодействаме с файлове по нормален начин (като file.renameTo (file2)). Ако погледнем кода на метода file.renameTo (File), няма да видим нищо подозрително, никакви проверки. И правилно, защото проверките са на ниво файлова система. И ако се опитаме да променим файла, намиращ се на SD-картата, използвайки обичайните средства, ще получим следното изключение:

Java.io.IOException: Не може да се правят промени във файла your_file.ext

Ето един интересен начин да определите дали даден файл може да бъде променен:

Публичен булев isFileWritable (файлов файл) (логичен за запис; опитайте (нов FileOutputStream (файл, истина) .close (); writable = file.exists () && file.canWrite ();) catch (IOException e) (writable = false; ) връщане с възможност за запис;)

Ако файлът е на карта, ще получим IOException.

За да модифицираме файл на карта с памет, трябва да получим DocumentFile, представляващ нашия файл, но с разрешенията за запис, които получихме с SAF.

В началото на тази статия говорих за две намерения за SAF: ACTION_OPEN_DOCUMENT_TREE и ACTION_OPEN_DOCUMENT. И казах, че няма да използваме второто намерение, тъй като това принуждава потребителя да търси файла ръчно. Но имаме URI, който получихме с помощта на първото намерение и това означава... Не, няма стандартен API за получаване на DocumentFile, всичко се обработва.

Алгоритъмът е следният:

  1. Имаме файл
  2. Определете името на устройството, на което се намира този файл
  3. Определяме пътя на файла спрямо устройството, на което се намира. Получаваме линия като android / папка / file.txt
  4. Отделете реда със символа «/»
  5. В цикъл за всяка получена част намерете DocumentFile, представляващ този път, въз основа на DocumentFile за предишната част
  6. Ако алгоритъмът е завършен без грешки, ние имаме DocumentFile на изхода, представляващ нашия файл

Public DocumentFile getDocumentFile (File file) (DocumentFile document = null; String baseFolder = null; for (String path: getAllPaths ()) (File filePath = нов файл (път); if (filePath.getAbsolutePath (). StartsWith (filePathAbsolute ())) (baseFolder = filePath.getAbsolutePath (); break;)) if (baseFolder == null) (връщане на null;) опитайте (String relativePath = file.getCanonicalPath (). substring (baseFolder.length () + 1) ; Uri permissionUri = Uri.parse (sharedPreferences.getString (SD_CARD_URI)); document = getDocumentFileForUri (permissionUri, relativePath);) catch (Exception e) (e.printStackTrace ();) return document;) / * Метод за получаване на DocumentFile ( стъпки 4-6) * / private DocumentFile getDocumentFileForUri (Uri treeUri, String relativePath) (String parts = relativePath.split ("/"); if (parts.length == 0) (връщане на null;) DocumentFile document = DocumentFile.fromTreeUri (mContext, treeUri); for (Част низ: части) (DocumentFile nextDocument = document.fi ndFile (част); if (nextDocument! = null) (document = nextDocument;)) връщане на документ; )

FileOutputStream outputStream = (FileOutputStream) mContentResolver.openOutputStream (documentFile.getUri ());

Пример за копиране на файл с клас в DocumentFile:

Public void copyFile (File sourceFile, DocumentFile документ) (FileInputStream inputStream = null; FileOutputStream outputStream = null; опитайте (inputStream = нов FileInputStream (sourceFile); outputStream = (FileOutputStream) mContentReputugetStream (UdocugetStream) (UdocugetStream). .getUriel ()); FileInputStream inputStream.getChannel (); FileChannel fileChannelOut = outputStream.getChannel (); fileChannelIn.transferTo (0, fileChannelIn.size (), fileChannelOut); // noinspection ResultOfMethodCallleIgncept); noinspection ResultOfMethodCallIgnored sourceFile.delete ();) накрая (опитайте (if (inputStream! = null) inputStream.close (); if (outputStream! = null) outputStream.close ();) catch (IOException e) (e.printStackTrace). );)))

И също така искам да кажа, че сега кодът ще бъде изпълнен с такива проверки.

Public void writeFile (File file) (boolean fileWritable = isFileWritable (file); boolean hasSdCardUri =! SharedPreferences.getString (SD_CARD_URI) .isEmpty (); if (fileWritable || hasSdCardUri) (/ * можете да редактирате нормално или SAF файла * / return;) if (Build.VERSION.SDK_INT> = 21) (/ * добре дошли! (питам от потребителя за разрешение) * / хвърляне на ново NoLollipopWritePermissionException (); `) else if (Build.VERSION.SDK_INT == 19) (/ * сбогом! (не мога да редактирам) * / хвърляне на ново изключение NoKitkatWritePermissionException (;))

Заключение

Надявам се, че моят опит, описан в статията, ще помогне на тези, които все още не са работили със SD карта, да избегнат много изследвания и търсене.

1. Заредете инсталационния файл на устройството SAS4Android.apk

2. Разрешете на вашето устройство (телефон, таблет и т.н.) разрешение за инсталиране на приложения на трети страни (не от Market). Това може да стане в настройките на вашето устройство: Настройки - Сигурност - Неизвестни източници- отметнете квадратчето Разрешаване на инсталиране на приложения от неизвестни източници(След инсталирането на SAS4Android това квадратче може да бъде премахнато). Копирайте файла SAS4Android.apk на вашето устройство и стартирайте неговата инсталация.

3. Стартирайте файла SAS4Android.apk .

4. При първото стартиране се появява прозорец, който пита за пътя до корена на CD картата и се съгласява с условията за ползване. Натиснете ДОБРЕ.Също така, при първото стартиране, работната папка на приложението се създава автоматично - SAS4Android и има папка работа. Това е работната папка на програмата, в която ще бъдат записани необходимите данни. Моля, имайте предвид, че трябва да посочите път към корена SD карти (а не към друга папка) - това е важно!

По подразбиране структурата на папките на програмата е както следва:

SD card_root / SAS4Android / работа - работна папка - създава се автоматично;

SDcard_root / SAS4Android / кеш - папка с кеш - създадена от потребителя.

Ако се използва структурата на папките по подразбиране, програмата автоматично открива пътищата до необходимите папки и файлове. Ако се използва различна структура на папките, пътищата трябва да бъдат посочени ръчно. На устройства с версия на Android преди 4.3.x се препоръчва да използвате структурата на папките по подразбиране.

Можете да определите пътя към картата по следния начин: Преди да поставите SD картата в устройството, създайте (на компютър) върху нея папка с разбираемо за васиме, например име.
Изключете устройството от компютъра, в противен случай SD картата в режим на съхранение няма да е налична за Android и всички програми. (По-удобно е да използвате програмата MyPhoneExplorer за комуникация с компютър, която ви позволява да редактирате информация на устройството чрез компютър и SD картата остава достъпна за всички). Отворете всеки файлов мениджър на вашето устройство и въведете най-корендиректория на устройството. Ще има няколко директории. Преглеждайки съдържанието им, намерете в една от тях "вашата" папка. Пътят, до който се показва файловият мениджър корентази директория е това, от което се нуждаете. Запомнете или запишете. В различните устройства и версии на Android са възможни различни опции за местоположението и името на папката на SD картата. Ако има папка mnt например mnt / sdkard , или mnt / external_sd , или mnt / extSdkard ... На някои устройства, папки mnt може и да не е. В този случай папката, монтирана на картата, обикновено се намира точно в корена на устройството, например: / Sdkard или / Sdkard1 или / extSdkard ... На Android версии 4. и по-нови обикновено се намира следната папка: съхранение / Sdkard или съхранение / Sdkard1 или съхранение / external_sd или съхранение / extSdkard .
И така, да предположим, че сме определили, че нашата SD карта е монтирана като / mnt / външен ... Точно това е пътят, който трябва да въведете (или е по-добре да изберете, като отворите диалоговия прозорец на файла с бутона [...]), когато за първи път стартирате програмата, преди да се появи менюто.

Характеристики на стартиране на Android 4.4 и по-нова версия

На Android 4.4 и по-нова версия правата на приложението за запис на SD картата бяха премахнати. Ако производителят не коригира фърмуера по време на сглобяването, приложението на устройство без root права няма да може да запише на SD картата. В този случай самата програма ще се опита да намери къде да постави работната директория. Най-вероятно това ще бъде директория в секцията с данни на приложението във вътрешната памет (без съхранение) на устройството.
В този случай програмата ще работи, данните ще бъдат записани в папката работа , прочетете от там. Но потребителят ще бъде лишен от възможността да вземе нещо от папката работа или сложи нещо там. Разбира се, говорим за устройство без root права. Ако това състояние на нещата устройва потребителя, тогава нищо друго не трябва да се прави. В противен случай трябва да работите с ръцете си.
Трябва да намерим място на устройството, на което програмата може да записва данни и можем да вземем тези данни от там и да добавим свои, ако е необходимо.
Експериментално успяхме да намерим такова място. Процедура за инсталиране:

1. Свързваме устройството с USB кабел към компютъра и създаваме в директорията вътрешна паметпапка Данни ... Или в самото устройство правим същото с помощта на файловия мениджър. Пътят трябва да бъде съхранение / sdcard0 / Данни ... В папката Данни поставяме файла .nomedia .
Внимание! Всички опити за създаване на папка работа(видими и редактирани на компютъра) на други места/папки във вътрешната памет неуспешен... Можете да го създадете и дори когато стартирате SAS4Android за първи път, можете да посочите пътя до желаната папка. Но след инсталирането достъпът до тази папка става невъзможен. Можете да прегледате файловия мениджър на устройството, но е невъзможно да добавите каквото и да е (записи, нов лицензен ключ, конфигурации на карта/слой и т.н.) от сменяема карта или компютър, или да го копирате на сменяема карта или компютър.
Защо името е избрано за папката? "Данни" ? Номерът е, че съвпада с името Данни , приета в стандартната терминология на устройството, а освен това Android прави разлика между главни и малки букви. Като цяло системата Android възприема тази папка като своя собствена и не ограничава съдържанието й в права.

Ето един готов, доказан начин за заобикаляне на ограниченията на Android 4.4x. На потребителя не е забранено да експериментира с местоположението и името на тази папка.

Сега папката, която създадохме съхранение / sdcard0 / Данни ще действа като пътя, до който трябва да посочите, когато стартирате програмата за първи път.
2. Създайте в корена външенПапка за SD карта SAS4Android , и в тази папка има папка кеш ... Поставяме кеша там. Пътят към кеша ще бъде .
3. При първото стартиране програмата ще поиска пътя до корена на SD картата. Посочваме пътя до папката, която създадохме: съхранение / sdcard0 / Данни ... В папка Данни програмата ще създаде папка SAS4Android , и в него папката работа със стандартен основен набор от файлове. Сега всички работни файлове на програмата ще бъдат разположени в папката съхранение / sdcard0 / Data / SAS4Android / работа и ще имаме достъп до тях.
4. Сега трябва да кажете на програмата пътя към кеша, тъй като той е различен от пътя по подразбиране. За да направите това, в стартиращата програма въведете Настройки - Кеш директория на картатаи с помощта на диалоговия прозорец посочете пътя съхранение / sdcard1 / SAS4Android / кеш .Инсталацията завършена.
#!!! Многобройни проверки показаха, че с тази инсталация на SAS4Android в устройства с Android 4.4.4, с допълнителни актуализации или дори пълно премахване и преинсталиране на приложението, директорията съхранение / sdcard0 / Данни остава работещ, доволен работа не се губи и не се счупва, достъп до редактиране работа както през устройството, така и през компютъра е отворен. Тестван на Sony Xperia Z, както и на Z3 compact и WinXP / Win7.
#!!! Това работната директория работа е принуден да бъде във вътрешната памет на устройството, има един значителен плюс - в случай на проблем / падане на SD картата в полето и това може да се случи на всеки, губите (временно) само кеша, и траклога и останалото съдържание работа ще остане цял и работещ.
Съвет : винаги е полезно да имате изключителен резерв - периодично, след появата на важни нови песни и точки, копирам / запазвам тази променена работа работа към SD картата към собствената папка SAS4Android, до кеш ... Там работа, разбира се, не работи - това е просто спасяване. И изведнъж звярът има проблеми - тогава картата ще помогне за частичното възстановяване.

#!!! В Android 4.4.x (ако производителят не е настроил фърмуера по време на сглобяването) онлайн размяна картографиране на данни в неопакован кеш от услуги на трети страни с помощта на скриптове, написани на JavaScript, без корен възможно само за вътрешна памет. За да заредите кеша на линия ще трябва допълнително да създадете втора папка кеш в работната директория на програмата съхранение / sdcard0 / Данни / SAS4Android / и поставете в него предварително необходимия брой папки с имената на източниците на карти/слоеве и с поставените в тях скриптове. Ще трябва да свикнете да превключвате между двете кеш директории в зависимост от текущите ви нужди: да работите без размяна - с главния кеш , а с изпомпване - преминаваме към кеш във вътрешната памет.

Излезте в менюто с настройки на програмата.

След стартиране на програмата излизането в менюто с настройки се извършва чрез натискане на системния бутон "Меню". Това може да бъде или хардуерен бутон, или екранен бутон в долната част на екрана ( три вертикални точки). В зависимост от вашето устройство и версията на Android на него, това може да бъде или хардуерен бутон, или екранен бутон в долната част на екрана. На много нови устройства с Android версии 4 и по-нови, този бутон се комбинира с бутона за списъка с работещи приложения ( два подравнени правоъгълника). В този случай, за да излезете от менюто, това е достатъчно натиснете и задръжтебутон за стартиране на приложения, докато се появи менюто с настройки.

Функции за включване и изключване на SAS4Android

Когато стартирате програмата, всички режими се включват: показване на карти, навигация, запис на дневник на песните (стартиране на услуга). Възможно е да излезете от приложението (да го поставите в режим на заспиване), без да спирате услугата, т.е. запис на дневник на песните. В зависимост от настройките (режим на запис на дневник, режим на спиране на услугата), ако е необходимо, стартирайте друга програма, обадете се или отговорете на повикване, докато запазвате работещата услуга, използвайте или бутона обратно, или бутона "начало" под формата на къща.

За да спрете услугата, в зависимост от настройките, използвайте двукратно щракване върху бутона "Назад" или спуснете "завесата", в списъка с работещи приложения щракнете върху реда SAS4Android, Натисни бутона Спри се.

#!!! При таблетите най-често лентата на състоянието е в долната част. От дясната му страна са групирани иконите на работещи приложения. Ако щракнете върху която и да е икона, ще се появи прозорец с линийка с икони за "Бързи параметри" (звук, WiFi яркост, BT, мрежа, местоположение и т.н.), а по-долу е ред по ред списък на работещите приложения.

Характеристики на разпространението на програмата

Програма SAS4Android разпространяват безплатно.

Срок на валидност на заявлението - бележка на автора.

След многократно и злонамерено нарушаване на авторски права от някои нечестни търговци на навигатори, авторът трябваше да въведе ограничение - след инсталиране (или следващата актуализация) на програмата SAS4Android работи правилно в продължение на 1 месец от датата на публикуване на актуализацията и след това частично се "счупва" - гниене... Това се изразява в намаляване на времето за непрекъснат запис на траклога (обикновено в рамките на 20-30 минути), след което записът спира, на екрана се появява съответно съобщение. След това остава само да рестартирате програмата (затворете приложението и услугата и ги стартирайте отново). И така непредвидим брой пъти до края на пътуването. В този случай песните се записват, но с прекъсвания. Едно просто, но обезпокоително решение на този проблем е редовната актуализация веднъж месечно. Всяка нова актуализация има по-късна дата на "избледняване", така че актуализирайте и продължете...

Но има по-добър начин.

Програмата има алгоритъм за премахване на ограничението - ключ лиценз.dat, който деактивира "избледняването". Авторът дава ключовете в знак на благодарност на подкрепилите проекта. Така че не питайте "колко" или "как да купя". Отидете на която и да е страница на форума и разгледайте отблизо заглавката.

Ключовете не се продават! Дарения с всяко споменаване на ключове или покупки в коментарите ще бъдат върнати на подателя.

За да генерирате ключ, ви е необходим файл deviceld.txt ... Той се формира от самата програма SAS4Android и се поставя в папката работа .

Първо проверете дали има файл на вашето устройство. deviceld.txt има.

Ако го няма, тогава няма да можете да създадете ключ за вашия навигатор (уви, има някои силно съкратени модели, на които този механизъм не работи).

Ако имате файл deviceld.txt празен или неработещ (останал от старата версия на програмата до фабрично нулиране или актуализация на системата).

1. Премахнете старото deviceld.txt .

2. Стартирайте програмата.

3. Чакаме спътниците да бъдат уловени (координатната линия ще стане черна).

4. Затворете програмата. В папката трябва да се появи валиден идентификатор работа .

Обърнете внимание на фактаче ключът е свързан с идентификатора на устройството. На Android инсталирането на системна актуализация променя идентификатора на устройството. Това също е резултат от нулиране към фабричните настройки. (Защо така? Попитайте производителите на вашето устройство).

Така че, ако актуализирате системата или направите фабрично нулиране, ключът ще спре да работи.

Това обаче може да се реши чрез смяна на ключа. Всички въпроси относно премахването на ограниченията, попитайте автора на програмата в лично съобщение.