Îmi doresc foarte mult să accesez fișierele de pe sistemul Android. Sunt capabil să citesc fișiere și directoare în stocarea externă Android. Intrebarile mele:
- Cum pot accesa directoarele și fișierele de stocare internă (în special pentru videoclipuri, fotografii, toate aplicațiile care rulează în Android).
- Unde sunt stocate datele fiecărei aplicații care este instalată pe stocarea internă?
- Este posibil să transferați date care există în stocarea internă (din memoria internă în stocarea externă?
- Am citit că stocarea externă poate fi citită în întreaga lume? ce înseamnă? (dacă creați o aplicație, atunci această aplicație poate accesa toate fișierele instalate în stocarea externă?)
2 raspunsuri
În mod implicit, o aplicație nu poate accesa datele stocate într-o altă aplicație. Permisiunile se aplică stocării interne care fac ca datele scrise de o aplicație să fie inaccesibile în afara acelei aplicații (aplicația dvs. nu poate citi nimic scris de o altă aplicație). Acest lucru poate fi modificat în cazul în care aplicația poate specifica permisiuni diferite pentru datele PROPRII; Practic, aplicația poate permite altora să-și citească datele. Cu toate acestea, cu excepția cazului în care o aplicație își setează în mod special permisiunile pentru a permite acest lucru, alte aplicații nu pot accesa datele sale. Acesta este un principiu fundamental al modelului de securitate/izolare Android și este executat la nivel de Linux/kernel, deoarece fiecare aplicație rulează sub propriul său UID Linux și permisiunile sunt setate pe sistemul de fișiere permițând acel UID acces la structura de directoare a aplicației (grup și permisiunile mondiale setate la 0 implicit).
Toate acestea ies din fereastră dacă aveți acces root pe dispozitiv (telefonul încorporat și aplicația care rulează ca root), dar trebuie să luăm în considerare că nu este în limitele întrebării dvs.
Stocarea externă (card SD) este diferită prin faptul că este considerată gratuită pentru toți, iar permisiunile nu sunt aplicate acolo (acest lucru se datorează în mod inerent sistemului de fișiere utilizat de obicei în SD care nu acceptă permisiuni). De obicei, orice aplicație poate citi orice scris pe cardul SD de orice altă aplicație, cu excepția cazului în care aplicația originală face ceva pentru a o proteja (criptare etc.).
Când încercați să descărcați un fișier pe un telefon Xiaomi, utilizatorul dispozitivului poate primi mesajul „Descărcările necesită acces la memoria dispozitivului”. Acest tip de disfuncție este cauzat de obicei de setările aplicațiilor „Descărcări” și „Browser”, din cauza cărora accesul acestor aplicații la memoria telefonului este blocat. Să ne uităm la specificul acestei probleme și la opțiunile de rezolvare.
Esența problemei cerințelor de acces
După cum știți, sistemul de operare Android permite utilizatorului să regleze accesul specific al unei anumite aplicații mobile la componentele de sistem ale telefonului dumneavoastră. Acest lucru este cauzat atât de politica de securitate (aplicațiile rău intenționate nu pot accesa automat componentele sistemului), cât și de modul în care este utilizată bateria, permițând o utilizare mai atentă a potențialului său.
Primirea mesajului „Descărcările necesită acces la memoria dispozitivului” înseamnă de obicei că setările browserului mobil au blocat accesul de care are nevoie la memoria gadgetului.
În unele cazuri, o notificare similară se poate aplica și aplicației Descărcări, căreia i se refuză și accesul specificat.
Să ne dăm seama cum să rezolvăm problema „Descărcările necesită acces” pe Xiaomi.
Ce trebuie să faceți dacă în Xiaomi - Descărcările necesită acces la memoria dispozitivului
Pentru a remedia problema cu încărcarea pe Xiaomi, nu este nevoie să obțineți drepturi de root, să flashați dispozitivul sau să faceți alte operațiuni similare. Soluțiile la problemă sunt destul de simple.
- În primul rând, verificați funcționalitatea generală a browserului dvs. mobil.
- Închideți-l, apoi accesați setările dispozitivului și selectați „Toate aplicațiile” acolo.
- În lista de aplicații, găsiți browserul, atingeți-l și accesați setările sale, faceți clic pe „Ștergeți datele”, precum și pe „Ștergeți memoria cache”.
- Apoi închideți setările gadgetului, lansați browserul și încercați să descărcați din nou fișierele de care aveți nevoie.
Dacă eroarea continuă să se repete, atunci trebuie să modificați setările de acces ale browserului și aplicația Descărcări. Accesați setările Xiaomi, acolo selectați „Toate aplicațiile” - („Terț”), apoi „Browser”, apoi „Permisiuni de aplicație” și activați glisorul „Memorie” acolo.
De asemenea, se recomandă efectuarea unei acțiuni similare în legătură cu aplicația „Descărcare” (sau în limba engleză „Descărcări”). În setările dispozitivului, trebuie să găsiți aplicația specificată, să atingeți ea și, introducând setările acesteia, să mutați glisorul „Memorie”, care este responsabil pentru accesul aplicației la aceasta din urmă. Problema va fi rezolvată.
Concluzie
În marea majoritate a cazurilor, apariția mesajului „Descărcările necesită acces la memoria dispozitivului” înseamnă că setările browserului nu îi permit să acceseze memoria gadgetului tău. O soluție simplă și eficientă a problemei este să accesați setările dispozitivului și să acordați browserului (sau aplicației Descărcări) permisiunile necesare, după care problema va fi rezolvată efectiv.
Ultima actualizare: 21.03.2017
În subiectul anterior, ne-am uitat la salvarea și citirea fișierelor din directorul aplicației. În mod implicit, astfel de fișiere sunt accesibile numai aplicației în sine. Cu toate acestea, putem plasa și lucra cu fișiere din stocare externă. Acest lucru va permite și altor programe să deschidă aceste fișiere și să le modifice dacă este necesar.
Întregul mecanism de lucru cu fișierele va fi același ca atunci când lucrați cu stocarea aplicației. Diferența cheie aici va fi obținerea și utilizarea căii de stocare externă prin metoda Environment.getExternalStorageDirectory()
Deci, lăsați fișierul activity_main.xml să aibă același marcaj de interfață:
Și codul pentru clasa MainActivity va arăta astfel:
Pachetul com.example.eugene.filesapp; import android.Manifest; import android.content.pm.PackageManager; import android.os.Environment; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; clasă publică MainActivity extinde AppCompatActivity ( șir privat final static FILE_NAME = "content.txt"; privat static final int REQUEST_PERMISSION_WRITE = 1001; permisiune booleană privată acordată; @Override protected void onCreate(Bundle savedInstanceState) (super.onCreateState); .layout.activity_main); ) private File getExternalPath() ( return(new File(Environment.getExternalStorageDirectory(), FILE_NAME)); ) // salvarea fișierului public void saveText(View View)( if(!permissionGranted)( checkPermissions( ) ; return; ) FileOutputStream fos = null; încercați ( EditText textBox = (EditText) findViewById(R.id.save_text); String text = textBox.getText().toString(); fos = new FileOutputStream(getExternalPath()); fos .write(text.getBytes()); Toast.makeText(this, „Fișier salvat”, Toast.LENGTH_SHORT).show(); ) catch(IOException ex) ( Toast.makeText(this, ex.getMessage(),), Toast .LENGTH_SHORT).show(); ) finally( try( if(fos!=null) fos.close(); ) catch(IOException ex)( Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show(); ) ) ) // deschide fișierul public void openText(View view)( if(!permissionGranted)( checkPermissions (); return; ) FileInputStream fin = null; TextView textView = (TextView) findViewById(R.id.open_text); Fișier fișier = getExternalPath(); // dacă fișierul nu există, ieșiți din metoda if(!file .exists( )) return; încercați ( fin = new FileInputStream(fișier); byte bytes = new byte; fin.read(bytes); String text = new String (octeți); textView.setText(text); ) catch(IOException) ex) ( Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT).show(); ) finally( try( if(fin!=null) fin.close(); ) catch(IOException ex)( Toast .makeText( this, ex.getMessage(), Toast.LENGTH_SHORT).show(); ) ) ) // verifica dacă stocarea externă este disponibilă pentru citirea și scrierea publicului boolean isExternalStorageWriteable())( String state = Environment.getExternalStorageState() ; returnează Mediu. MEDIA_MOUNTED.equals(state); ) // verifică dacă stocarea externă este cel puțin booleană publică numai pentru citire isExternalStorageReadable())( String state = Environment.getExternalStorageState(); return (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) ) ; ) private boolean checkPermissions())( if(!isExternalStorageReadable() || !isExternalStorageWriteable())( Toast.makeText(this, "Stocare externă nu este disponibilă", Toast.LENGTH_LONG).show(); return false; ) int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); if(permissionCheck!= PackageManager.PERMISSION_GRANTED)( ActivityCompat.requestPermissions(this, new String(Manifest.permission.WRITE_EXTERNAL_STORAGE), REQUEST_PERMISSION) return false_WRITE; true; ) @Override public void onRequestPermissionsResult(int requestCode, @NonNull String permisiuni, @NonNull int grantResults)( switch (requestCode) (case REQUEST_PERMISSION_WRITE: if(grantResults.length > 0 && grantResults == PackageManager.DMIS) ; Toast.makeText(this, "Permisiuni acordate", Toast.LENGTH_LONG).show(); ) else( Toast.makeText(this, "Permisiuni necesare", Toast.LENGTH_LONG).show(); ) break; ) ) )
Folosind expresia Environment.getExternalStorageDirectory(), accesăm folderul aplicației din stocarea externă și setăm obiectul fișier:
Fișier privat getExternalPath() ( return(Fișier nou (Environment.getExternalStorageDirectory(), FILE_NAME)); )
Deoarece sunt necesare permisiuni pentru a citi/scrie pe stocarea externă, trebuie să verificați permisiunile înainte de a salva și scrie un fișier. Metoda checkPermissions() este definită în acest scop. La setarea permisiunilor, este declanșată metoda onRequestPermissionsResult(), în care, dacă permisiunile sunt setate cu succes, variabila permissionGranted este setată la true .
Pentru a utiliza stocarea externă, trebuie să setați permisiuni în fișierul manifest AndroidManifest.xml:
Ai o întrebare, de ce descărcările pe Xiaomi necesită acces la memoria dispozitivului și ce să faci în acest caz? Pentru a rezolva singur problema, vă prezentăm un ghid pas cu pas cu imagini.
Restricția accesului la memoria telefonului pentru majoritatea aplicațiilor a fost observată de mulți utilizatori de smartphone-uri Xiaomi, precum și de proprietarii de dispozitive Android. La urma urmei, înainte de prima lansare a oricărei aplicații descărcate de pe Play Market, sistemul solicită acces la memoria dispozitivului, locație, apeluri etc. Anterior, fiecare aplicație primea automat permisiunea de a gestiona datele, iar utilizatorul putea cunoaște cerințele programelor doar din descrierile acestora din Play Market. Acum proprietarul dispozitivului poate adăuga restricții în mod independent.
Important: multe programe cer permisiunea de a vă urmări locația. Acest lucru nu numai că compromite confidențialitatea, dar are un impact negativ și asupra consumului de energie. La urma urmei, smartphone-ul va fi forțat să acceseze constant GPS-ul sau să mărească sarcina în rețea pentru a calcula coordonatele.
Eroarea în sine apare deoarece aplicației nu i s-a acordat permisiunea de a accesa memorie. În consecință, fără aceasta, programul „Descărcări” nu poate funcționa, despre care sunt notificați proprietarii de smartphone-uri Xiaomi. Eroarea poate fi cauzată și de browsere terțe care au restricții în anumite puncte.
Cum se remediază
Soluția este foarte simplă și nu necesită cunoștințe speciale. Vinovați sunt browserele folosite, precum și aplicația „Descărcări”; în unele smartphone-uri ale acestui brand se numește „Descărcări”. Trebuie să verificați setările ambelor aplicații și să le setați corect.
Verificare browser
Verificați funcționalitatea browserului dvs. Dacă se deschide fără avertismente, atunci trebuie să luați alți pași:
- Introduceți setările dispozitivului. Pentru a nu căuta pictograma corespunzătoare în meniu, trebuie să glisați în jos perdeaua de sus și să faceți clic pe pictograma roată.
- Accesați elementul „Toate aplicațiile”.
- În listă, găsiți browserul din care intenționați să descărcați. Pentru comoditate, puteți utiliza căutarea după nume și faceți clic pe ea.
- După deschidere, va trebui să intri în secțiunea „Permisiuni de aplicație”.
- În ele, pentru ca descărcarea să înceapă, trebuie să permiteți accesul la memorie. Pentru a face acest lucru, mutați glisorul în coloana „Memorie”.
- Apoi, trebuie să apăsați butonul „Înapoi” de pe corpul dispozitivului, să reveniți la articolul anterior și să deschideți linia „Memorie”.
- În el, faceți clic pe „Ștergeți datele” și „Ștergeți memoria cache”.
- Din nou, reveniți cu un pas și mergeți la elementul „Trafic”.
- În ea, mutați glisorul spre dreapta în toate punctele.
Notă: „Traficul de fundal” poate fi dezactivat (nu mutați glisorul la dreapta). În acest caz, aplicația nu se va putea conecta la Internet atunci când nu este utilizată. Din acest motiv, nu va mai trimite notificări.
Cu toate acestea, există programe care pot irosi până la 300 MB de trafic în 2 săptămâni în perioadele de inactivitate (jocurile sunt în special vinovate de acest lucru). Și, prin urmare, reduceți semnificativ volumele furnizate de operatorii de telefonie mobilă. Prin urmare, trebuie să vă verificați consumul și să interziceți accesul la Internet în fundal la astfel de programe (consumul în fundal este afișat vizavi de elementul „Trafic de fundal”).
Verificarea descărcărilor
Algoritmul acțiunilor este identic. Trebuie să repetați tot ceea ce este descris mai sus, dar pentru aplicația „Descărcări” (sau „Descărcări” pentru versiunile anterioare de smartphone-uri). Totuși, aici trebuie permisă utilizarea traficului de fundal. Deoarece în timpul inactiv, megaocteții practic nu sunt utilizați. Dezactivarea acestuia poate cauza o eroare, așa că nu este recomandat să dezactivați consumul de trafic de fundal în această situație.
Pașii descriși vor ajuta la eliminarea completă a apariției erorilor. Făcând totul exact, veți preveni apariția erorii „Descărcările necesită acces la memoria dispozitivului” pe Xiaomi pentru toate modelele și veți putea începe descărcarea oricăror fișiere.
Undeva în adâncul pieptului telefonului tău Android se află un dispozitiv de stocare. Este ca un hard disk pe un computer: chestia nu poate fi ștearsă, dar nu asta este ideea. Chestia este că spațiul de stocare este folosit pentru aplicațiile, muzică, videoclipuri, imagini și multe alte informații. Iată câteva lucruri pe care le puteți face pentru a gestiona acest spațiu de stocare.
Telefoanele Android vin cu stocare internă de 8 GB, 16 GB, 32 GB sau mai mult.
Stocarea detașabilă sub formă de card MicroSD este disponibilă pe unele telefoane, deși această opțiune devine din ce în ce mai puțin populară. Capacitatea cardului MicroSD variază de la 8 GB la 64 GB sau mai mult.
GB este gigabyte, sau 1 miliard de octeți (caractere) de stocare. Un film tipic de 2 ore ocupă aproximativ 4 GB de memorie. Majoritatea lucrurilor pe care le stocați pe telefon nu ocupă atât de mult spațiu. De fapt, mediile stocate în cloud practic nu au spațiu de stocare.
Vedeți statisticile de stocare
Pentru a afla cât spațiu liber este disponibil pe telefon, urmați acești pași:
Selectați Stocare.
Pe telefoanele Samsung, veți găsi elementul Stocare în fila General a aplicației Setări.
Un ecran de stocare tipic conține informații despre locația de stocare în memoria internă a telefonului și, dacă este disponibil, pe cardul MicroSD.
Informații despre stocarea telefonului.
Dacă telefonul dvs. are spațiu de stocare extern, găsiți categoria cardului SD în partea de jos a ecranului de stocare.
Atingeți o categorie de pe ecranul de stocare pentru a vedea informații despre modul în care este utilizată stocarea sau pentru a lansa aplicația asociată. De exemplu, atingeți Aplicații pentru a vedea o listă de aplicații care rulează. Dacă faceți clic pe „Imagini”, „Videoclipuri”, puteți vizualiza imagini și videoclipuri.
Videoclipurile, muzica și fotografiile (în această ordine) consumă cel mai mult spațiu pe telefon.
Media pe care le descărcați pe telefon din cloudul Google, cum ar fi filme sau videoclipuri, sunt urmărite în categoria Aplicații.
Nu plânge ca valoarea Spațiului Total să fie mult mai mică decât capacitatea de stocare a telefonului. De exemplu, un telefon de 16 GB afișează doar 12,55 GB. Spațiul lipsă este considerat deasupra capului, la fel ca și câțiva gigaocteți luați de guvern în scopuri fiscale.
Gestionarea fișierelor
Probabil că nu ai primit un telefon Android pentru că îți plăcea să gestionezi fișierele de pe computer și doreai un alt gadget care să-ți perfecționeze abilitățile. Cu toate acestea, puteți practica același tip de manipulare a fișierelor pe telefon ca și pe computer. Este necesar să faci asta? Desigur că nu! Dar dacă doriți să infectați fișiere, puteți.
Unele telefoane Android au o aplicație pentru gestionarea fișierelor. Se numește „Fișierele mele” sau „Manager de fișiere” și este un tip tradițional de manager de fișiere, ceea ce înseamnă că, dacă nu gestionați fișierele de pe computer, veți experimenta acest tip de lucru.aceeași durere și dezamăgire pe telefonul tău.
Dacă doriți doar să vedeți fișierele pe care le-ați descărcat de pe Internet, deschideți aplicația Descărcări care se găsește în sertarul de aplicații.
Dacă telefonul dvs. nu are o aplicație de gestionare a fișierelor, puteți obține una rapid. Există multe aplicații de gestionare a fișierelor disponibile pe Google Play Store. Managerul/browserul de fișiere ASTRO de la Metago este o opțiune bună.
Dezactivarea unui card MicroSD
Cardul MicroSD oferă spațiu de stocare detașabil pe mai multe telefoane Android. Când telefonul este oprit, puteți introduce sau scoate cardul MicroSD după cum doriți. Cardul MicroSD poate fi scos și în timp ce telefonul este pornit, dar mai întâi trebuie să deconectați cardul. Urmați acești pași:
Deschideți aplicația Setări.
Selectați „Stocare”.
Pe unele telefoane Samsung, deschideți fila General pentru a găsi elementul Stocare.
Selectați „Dezactivați cardul SD”.
Acest element este situat în partea de jos a ecranului. În caz contrar, telefonul dvs. nu are opțiunea de a găzdui un card MicroSD detașabil.
Ignorați avertismentul și faceți clic pe OK.
Când vedeți acțiunea Mount SD Card, puteți elimina cardul MicroSD.
Este important să urmați acești pași pentru a scoate în siguranță cardul MicroSD. Dacă nu faceți acest lucru și pur și simplu scoateți cardul, se poate deteriora cardul și pierde informații.
Puteți introduce un card MicroSD în orice moment.
Formatarea memoriei MicroSD
Telefonul dvs. Android este proiectat să recunoască instantaneu cardul MicroSD atunci când îl introduceți. Dacă nu, puteți încerca să formatați cardul pentru a vedea dacă asta rezolvă problema.
Toate datele de pe cardul MicroSD sunt șterse prin procesul de formatare.
Pentru a formata un card MicroSD, mai întâi introduceți-l în telefon. Apoi urmați acești pași pentru a determina dacă formatul este în ordine:
Deschideți aplicația Setări.
Selectați Stocare.
Selectați formatul cardului SD.
Faceți clic pe butonul Formatați cardul SD.
Faceți clic pe butonul „Șterge tot” pentru a confirma.
Cardul MicroSD este demontat, formatat și apoi remontat și gata de utilizare.
Odată ce cardul este formatat, îl puteți folosi pentru a stoca informații, muzică, aplicații, fotografii etc.