2015-06-04 4 views
8

Ich spiele mit den Klassen MediaStore von Android herum und versuchte, eine sehr einfache Fotogallerie-App zu erstellen, als ich bemerkte, dass es zwei Bildinhalts-URIs waren: EXTERNAL_CONTENT_URI und . Zuerst dachte ich, es bezog sich auf den Ort des Speichers (externe SD oder interner Speicher), aber nach ein paar Tests war dies eindeutig nicht der Fall. Ich lese mehr darüber here, und es schien darauf hinzuweisen, dass der interne Inhalt uri tatsächlich Inhalt ist, die intern zu jeder der Apps auf dem Gerät sind. Allerdings bin ich nicht ganz sicher und wollte Meinungen von erfahreneren Entwicklern, die mit den MediaStore Klassen vertrauter sind.Android: Ist EXTERNAL_CONTENT_URI genug für eine Fotogalerie?

Also meine Hauptfrage ist, würde nur die EXTERNAL_CONTENT_URI Abfrage genug sein, um alle wichtigen Fotos zu bekommen? Und wenn möglich zu beantworten, was genau ist die INTERNAL_CONTENT_URI und wofür soll es verwendet werden?

Antwort

15

Externe vs interne Speicher bezieht sich nicht auf den Speicherort des Speichers, sondern die Datenschutzrichtlinie in Bezug auf es. Interner Speicher bedeutet, dass nur die App- oder System-/Superuser-Prozesse auf die Inhalte zugreifen können.

Externer Speicher kann von jeder App gelesen werden, es erscheint, wenn Sie Ihr Telefon an Ihren Computer anschließen, damit Sie es als das betrachten können, was allen anderen angezeigt wird, daher "external".

Ich habe ein Samsung S5 zum Beispiel, und es stellt sowohl internen als auch externen Speicher auf den gleichen "internen" Flash-Speicher, sie sind in der Tat nur separate Partitionen auf dem gleichen Stock des Widders.

Wenn ich eine SD-Karte hinzufüge, fügt sie einen anderen (sekundären) externen Speicherort hinzu.

Jedes Android-Gerät muss mit internem und externem Speicher geliefert werden, so dass Geräte, die ohne SD-Karte ausgeliefert werden, garantiert über partitionierten "internen" Speicher für internen und externen Speicher verfügen.

Wie sich die External_Content_URI bezieht, gibt es Bilder zurück, die sich in externem Speicher befinden - die Dokumente werden genauer gelesen, es wird nur für das "primäre" externe Speichervolume zurückgegeben. Ich habe gerade den letzten Teil in Anführungszeichen gesehen, also werde ich in den nächsten Tagen testen, ob sekundärer externer Speicher ebenfalls vom Mediastore indiziert oder abgerufen wird, wenn jemand anderer nicht zuerst hilft, diesen zu beantworten.

http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

+0

Ich denke, das die Frage gut beantwortet. – idunnololz

+0

so hat Media Store alles abgerufen oder nicht?! –