Jak utworzyć folder specyficzny dla aplikacji w galerii Androida?

Buduję aplikację na Androida " XYZ", w której użytkownicy będą przechowywać pliki multimedialne, takie jak zdjęcia i filmy. Dlatego chciałbym utworzyć folder w galerii Androida o nazwie " XYZ " i przechowywać wszystkie media specyficzne dla aplikacji w "XYZ". Jak to osiągnąć?

Obecnie jestem w stanie przechowywać media na sdcard i przy skanowaniu plików multimedialnych, pojawiają się one w folderze "images", w galerii Androida.

Author: Harshal Kshatriya, 2013-12-11

3 answers

Myślę, że właściwym sposobem przechowywania zdjęć dostępnych w galeriach jest zapisywanie plików do tego katalogu.

static final String appDirectoryName = "XYZ";
static final File imageRoot = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES), appDirectoryName);

I dla filmów

static final File videoRoot = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_MOVIES), appDirectoryName);

I stworzyć obraz

imageRoot.mkdirs();
final File image = new File(imageRoot, "image1.jpg");
// open OutputStream and write the file

Jeśli dodasz jakieś pliki i otworzysz galerię, powinieneś zobaczyć album "XYZ". Pamiętaj, że nie zobaczysz albumu, jeśli katalog jest pusty.

I o twoich słowach

Obecnie, jestem w stanie przechowywać media na sdcard i na skanowanie plików multimedialnych, pojawiają się w folder "Obrazy" w galerii Androida.

Reprezentacja zależy od aplikacji galerii, której używasz. Domyślna Galeria Androida powinna utworzyć "albumy" nazwane od folderu, w którym znajdują się pliki multimedialne.

Edit: nie zobaczysz nowo utworzonego obrazu, jeśli nie uruchomisz skanera multimediów lub nie dodasz go do bazy danych MediaStore.

 25
Author: Yaroslav Mytkalyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-04 21:12:35

Istnieje > 1 miliard urządzeń z Androidem, reprezentujących tysiące modeli urządzeń, z setkami różnych aplikacji "galerii" (wstępnie zainstalowanych lub zainstalowanych przez użytkownika). Nie ma wymogu, aby każda aplikacja "Galeria" miała koncepcję folderów, nie mówiąc już o tym, aby Programiści zewnętrzni kontrolowali te foldery.

Stąd nie ma ogólnego sposobu na osiągnięcie celu, innego niż napisanie własnej takiej aplikacji.

 2
Author: CommonsWare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-11 15:55:36

Jeśli jesteś w stanie przechowywać filmy i obrazy w pamięci zewnętrznej, takiej jak karta SD, zakładam, że wiesz, jak używać "plików"

Dlatego wystarczy nazwać lokalizację, w której chcesz zapisać i utworzyć ją (jeśli nie istnieje)

Coś w stylu:

File file = new File(Environment.getExternalStorageDirectory() +"/XYZ/");  

if(!file.exists())     //check if file already exists
{
    file.mkdirs();     //if not, create it
}

To jest Twój Folder katalogowy i możesz w nim zapisać, co tylko chcesz.

Coś w stylu:

File imageFile = new File(file.toString() + "image" + ".jpg");

Spowoduje to utworzenie pliku obrazu o nazwie " image.jpg " w katalogu XYZ.

 -2
Author: Matan Dahan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-05 08:25:58