Autore Topic: Aprire gallery da codice  (Letto 460 volte)

Offline Rino63

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Mostra profilo
Aprire gallery da codice
« il: 04 Gennaio 2015, 18:46:11 CET »
0
ciao a tutti. da una mia app dovrei aprire la galleria fotografica di default per visualizzare il contenuto di una cartella. ho tentato varie strade, ma non sono riuscito ad approdare a nulla. la cosa più vicina al funzionamento richiesto è la seguente:

Codice (Java): [Seleziona]
Intent i=new Intent();
                i.setAction(Intent.ACTION_VIEW);
                i.setDataAndType(Uri.fromFile(new File(dir.getAbsolutePath())), "image/*");
                startActivity(i);
che però mi visualizza una schermata nera e basta. dove sbaglio? evidentemente qualcosa non va...

Preciso che dir viene ottenuto nel modo seguente:
           
Codice (Java): [Seleziona]
   File sdCard = Environment.getExternalStorageDirectory();
                File dir = new File (sdCard.getAbsolutePath() + "/myapp");

e che il test è wffwttuato su android 4.4.2   ovviamente i permessi read write su sd sono abilitati anche se l'app in realtà si trova sul dispositivo.




Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 618
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Aprire gallery da codice
« Risposta #1 il: 19 Gennaio 2015, 10:41:09 CET »
+1
verifica che "dir" sia effettivamente una cartella e non un file. Credo che per distinguere una cartella da un file sia necessario aggiungere lo slash alla fine:

Codice (Java): [Seleziona]
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/myapp/");

Poi, ma non credo sia questo il problema, nel setDataAndType imposta l'URI come segue:

Codice (Java): [Seleziona]
i.setDataAndType(Uri.fromFile(dir), "image/*");
o meglio ancora:

Codice (Java): [Seleziona]
Log.d(dir.isDirectory()); //Questo per verificare che si tratti di una dir e non di un file
Uri myFolder = Uri.fromFile(dir);
Log.d(myFolder); //Questo per verificare via log che l'URI sia corretto
i.setDataAndType(myFolder, "image/*");
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline Rino63

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Mostra profilo
Re:Aprire gallery da codice
« Risposta #2 il: 21 Gennaio 2015, 18:33:33 CET »
0
Grazie. Appena possibile proverò a fare così