Hoe toegang te krijgen tot /storage/emulated/0/

Ik heb een code geschreven om audio op te nemen en op te slaan op de onderstaande bestandslocatie.

private String getFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath, AUDIO_RECORDER_FOLDER);
    if (!file.exists()) {
        file.mkdirs();
    }
    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + file_exts[currentFormat]);
}

In Logcat geeft het me een bestandslocatie als

/storage/emulated/0/AudioRecorder/1436854479696.mp4

Ik kan deze bestandslocatie niet vinden op mijn SD-kaart. Hoe toegang krijgen tot de locatie?


Antwoord 1, autoriteit 100%

Zoals Hiren al zei, heb je een bestandsverkenner nodig om je directory te zien. Als je geroot bent, raad ik root explorer ten zeerste aan, anders is ES File Explorer een goede keuze.


Antwoord 2, autoriteit 92%

Geen apps van derden nodig

Met mijn Android 6.0 kan ik door het interne geheugen bladeren zonder dat ik apps van derden nodig heb. Ik doe gewoon dit*:

  1. “Instellingen”
  2. “Opslag en USB”
  3. “Stagiair”
  4. [laat het een beetje laden…]
  5. [helemaal naar beneden scrollen]
  6. “Bladeren”

* Woorden komen mogelijk niet overeen met de standaard Engelse versie, aangezien ik ze gewoon vrijelijk uit het Portugees vertaal.

Opmerking: in mijn telefoon komt /storage/emulated/0in ieder geval niet overeen met een SD-kaart, maar met intern geheugen. Deze methode werkte niet voor mijn externe kaart, maar ik heb het nooit geprobeerd met een andere telefoon.

Hopelijk helpt dit!


Antwoord 3, autoriteit 94%

U kunt ook Android Debug Bridge (adb)gebruiken om uw bestand van het Android-apparaat naar de map op uw pc te kopiëren:

adb pull /storage/emulated/0/AudioRecorder/1436854479696.mp4 <folder_on_your_PC_e.g. c:/temp>

En u kunt de hele map AudioRecordervan het apparaat kopiëren:

adb pull /storage/emulated/0/AudioRecorder <folder_on_your_PC_e.g. c:/temp>

Antwoord 4, autoriteit 91%

Sluit uw apparaat aan en voer adb shelluit, waarmee u een opdrachtshell op uw apparaat krijgt. Je hebt geen toestemming om /storage/emulated/te lezen, maar aangezien je weet dat het in submap 0 staat, ga je gewoon naar cd /storage/emulated/0en je zult in staat zijn om kijk rond en communiceer als aspect.

Opmerking:u kunt adbook draadloos gebruiken


Antwoord 5, autoriteit 36%

Probeer dit

private String getFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath + "/AudioRecorder" );
    if (!file.exists()) {
        file.mkdirs();
    }
    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".mp4");
}

Antwoord 6, autoriteit 27%

Klik in Emulator op Instellingen>Opslag>Other>Android>data>com.companyname.textapp>file>Download om dit bestand te bekijken.
Hier is textapp de naam van de app waaraan je werkt.


Antwoord 7, autoriteit 27%

https://productforums.google.com/forum/# !msg/nexus/WIcHUNQfRLU/ALpViG86AwAJ

Mr Expensive Toys zei:
Het verbaast me dat dit probleem zich nog steeds voordoet, aangezien het al in Honeycomb begon.

Dus de /storage/emulated/0/DCIM/Camera is dezelfde map als uw normale DCIM/Camera-map. Het is gewoon een symbolische link. Dus de bestanden bevinden zich eigenlijk op de juiste locatie, je hebt gewoon een app die slechte gegevens in de MediaStore-database plaatst.

Als u bestanden vanaf uw pc opent, somt u eigenlijk de MediaStorage-database voor bestanden op. Het trekt geen traditionele directorylijsten. Dus wat u ziet, is gebaseerd op wat zich in die database bevindt en de padvermeldingen in de database. Bestanden in de database die naar geëmuleerde mappen verwijzen, worden niet weergegeven, omdat wordt aangenomen dat ze duplicaten zijn, aangezien het dezelfde fysieke map is als uw normale DCIM/camera. Wat er aan de hand is, is dat sommige slecht geschreven apps van derden vermeldingen in de database invoegen met het /storage/emulated/0/DCIM/Camera-pad in plaats van het juiste rootpad naar DCIM/Camera. Wat betekent dat de MTP-service ze niet kan zien wanneer u bent aangesloten op uw pc.

Meestal is de eenvoudigste manier om het probleem op te lossen, gewoon de MediaStore-databases wissen om de slechte vermeldingen uit de MediaStore-database te halen en het systeem de bestanden opnieuw te laten indexeren en met de juiste paden in de database te plaatsen.

Instellingen->apps
Druk op het menu met 3 stippen in de rechterbovenhoek en selecteer Systeem weergeven
Zoek Media Opslag, Selecteer het, Selecteer Opslag, dan Gegevens wissen
Zoek externe opslag, selecteer het, selecteer opslag en vervolgens gegevens wissen
Schakel de telefoon uit, schakel de telefoon weer in, wacht tot de indexerservice de gegevens opnieuw heeft opgebouwd.

Als je klaar bent, zouden de bestanden moeten verschijnen met de juiste mappenboom en zichtbaar zijn vanaf de pc. Afhankelijk van het aantal bestanden op de telefoon kan het 10-20 minuten duren om de mediadatabase opnieuw op te bouwen terwijl de service de telefoongidsen doorloopt, metagegevens ophaalt, miniaturen maakt, enz.


Antwoord 8, autoriteit 18%

Hier is het te vinden op /mnt/shell/emulated/0


Antwoord 9, autoriteit 18%

Android raadt aan om Environment.getExternalStorageDirectory.getPath()aan te roepen in plaats van hardcoding /sdcard/in de padnaam. Dit retourneert de primaire gedeelde/externe opslagmap. Dus als opslag wordt geëmuleerd, wordt /storage/emulated/0geretourneerd. Als u de apparaatopslag verkent met een bestandsverkenner, is de genoemde map /mnt/sdcard(bevestigd op Xperia Z2 met Android 6).


Antwoord 10, autoriteit 9%

Probeer het vanaf

ftp://ip_my_s5:2221/mnt/sdcard/Pictures/Screenshots

die verwijzen naar /storage/emulated/0


Antwoord 11, autoriteit 9%

In mijn geval komt /storage/emulated/0/ overeen met het hoofdpad van mijn apparaat. Als ik bijvoorbeeld een foto maak met de standaard cameratoepassing van mijn telefoon, worden de afbeeldingen automatisch opgeslagen /store/emulated/0/DCIM/Camera/mypicname.jpeg

Stel bijvoorbeeld dat u uw afbeeldingen wilt opslaan in de map /Pictures, namelijk in de map Afbeeldingen die in de hoofdmap bestaat. Dus gebruik je de onderstaande code.

File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES );

Als u de afbeeldingen in de DCIM- of Downloads-directory wilt opslaan, geeft u de onderstaande argumenten op voor de methode Environment.getExternalStoragePublicDirectory() die hierboven is weergegeven.

Environment.DIRECTORY_DCIM
Environment.DIRECTORY_Downloads

Geef vervolgens uw afbeeldingsnaam op:

String imageFileName = "JPEG_" + timeStamp + "_";

Maak vervolgens het bestandsobject aan zoals hieronder weergegeven. U specificeert het achtervoegsel als het 2e argument.

File image = File.createTempFile(
            imageFileName,  // prefix
            ".jpg",         // suffix
            storageDir      // directory
);

Antwoord 12

als u Android-apparaatmonitor en Android-emulator gebruikt: ik heb op de volgende manier toegang gekregen:
Gegevens/Media/0/
voer hier de afbeeldingsbeschrijving in


Antwoord 13

Om je foto’s te HERSTELLEN vanuit /storage/emulated/0/ open je gewoon het 100Andro-bestand. Daar zul je je foto’s zien, hoewel je er misschien geen toegang toe hebt in je pc-verkenner. Open daar elke foto één voor één, ga verder met instellen (drie puntjes..) en sla de foto op. Het zal verschijnen in het Android-bestand ‘Pictures’ van waaruit je ze ook kunt kopiëren met je verkenner. Er is echter geen functie ‘alles opslaan’, dus het moet één voor één worden gedaan, maar het werkt.

QT


Antwoord 14

Bestanden op apparaat bekijken met apparaatverkenner

https://developer.android.com/studio/debug/device -file-explorer


Antwoord 15

Als u een simulator in Android Studio op Mac gebruikt, kunt u naar View -> Tool Windows -> Device File Explorer. Hier kunt u een vinderachtige structuur gebruiken.


Antwoord 16

voor Xamarin Android

Opdracht gebruiken
//haal de bestandsmap

Image image =new Image() { Source = file.Path };

dan in opdracht
adb pull //het pad van het afbeeldingsbestand hier

LEAVE A REPLY

Please enter your comment!
Please enter your name here

nineteen + ten =

Other episodes