Autore Topic: Intent per File Manager  (Letto 539 volte)

Offline Luca11

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7,Mac OSX 10.8.3
Intent per File Manager
« il: 21 Maggio 2013, 16:35:20 CEST »
0
Ciao a tutti,
La mia applicazione ha bisogno di selezionare un file per poi essere elaborato.
Ho quindi creato un mio file explorer, utilizzando dei List, e mi funziona.
L'unico inconveniente è che non riesco ad aggiungergli di fianco l'immagine della cartella e, una volta entrato nella cartella, visualizzare solo il percorso relativo anzichè assoluto... però perlomeno funziona!
Ho anche visto il modo per richiamare il file Manager del dispositivo utilizzando gli Intent.
Codice (Java): [Seleziona]
Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.setType("File/*");
intent = Intent.createChooser(chooseFile, "Scegli il file");
startActivityForResult(intent,ACTIVITY_CHOOSE_FILE );
Quest'ultimo però funziona solo se c'è un file manager installato sul dispositivo.
Io vorrei fare quindi un controllo: se il file manager è installato utilizzarlo richiamandolo con l'Intent, altrimenti utilizzare il mio File Explorer.
Consigli?

Grazie in anticipo;)
« Ultima modifica: 21 Maggio 2013, 16:42:30 CEST da Luca11 »

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Intent per File Manager
« Risposta #1 il: 21 Maggio 2013, 16:59:20 CEST »
0
il metodo startActivityForResult lancia una android.content.ActivityNotFoundException.
Quindi metti attorno un try catch e se lancia android.content.ActivityNotFoundException allora non esiste una activity per gestire quell'intent.  ;-)

Offline Luca11

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7,Mac OSX 10.8.3
Re:Intent per File Manager
« Risposta #2 il: 21 Maggio 2013, 17:15:15 CEST »
0
ciao, grazie per la risposta.
Ho provato il tuo consiglio..
Codice (Java): [Seleziona]
Intent chooseFile;
Intent intent2;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.setType("File/*");
intent2 = Intent.createChooser(chooseFile, "Scegli il file");
 try{
         startActivityForResult(intent2, 2);
      }catch(ActivityNotFoundException a){
                 Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                 startActivityForResult(intent, 1);
      }
il messaggio che mi appare è "No apps can perform this action" però non mi fa partire l'activity contenente il mio FileExplorer

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Intent per File Manager
« Risposta #3 il: 21 Maggio 2013, 17:26:47 CEST »
0
dove ti appare il messaggio?
Non entra nel catch?

Offline Luca11

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7,Mac OSX 10.8.3
Re:Intent per File Manager
« Risposta #4 il: 21 Maggio 2013, 17:59:52 CEST »
0
l'ho provato in debug e nel catch non entra.
Il messaggio appare come Dialog Box.
In quel Dialog Box dovrebbero apparire i File Manager installati tra cui scegliere, ma non essendocene dice "No apps can perform.."