Scelta del file Android con estensioni specifiche di file

Ho bisogno di mostrare solo i file 'pdf' nella mia applicazione quando eseguo predefinito Scelta file Non riesco a filtrare le estensioni di file.

final Intent getContentIntent = new Intent(Intent.ACTION_GET_CONTENT); getContentIntent.setType("application/pdf"); getContentIntent.addCategory(Intent.CATEGORY_OPENABLE); Intent intent = Intent.createChooser(getContentIntent, "Select a file"); startActivityForResult(intent, REQUEST_PDF_GET); 

Il selettore file mostra qualsiasi tipo di file. Vorrei mostrare solo file pdf. Come posso filtrare i file mostrati tramite il selettore File.

  • Come posso uccidere un'attività quando si preme il button Indietro?
  • La fatturazione in-app v3 non è in grado di interrogare gli elementi senza connessione di networking o in modalità aeroplano / volo
  • Creare errori con l'XML a dipendenza del converter di oggetti java in build.gradle per il retrofit
  • window.close equivalente in Phonegap con InAppBrowser
  • Android - Prova a submit sms falsi a me senza l'utilizzo della networking mobile
  • Recupera risorsa disegnabile da Uri
  • Apri il browser nativo da un'applicazione Android
  • Imansible creare file sull'archivio esterno Android
  • C'è un dispositivo Android con size dello schermo superiore a GL_MAX_TEXTURE_SIZE?
  • FILL_PARENT e MATCH_PARENT
  • Mancante chiave api_key / corrente con Google Services 3.0.0
  • Che cosa è onCreate (Bundle savedInstanceState)
  • One Solution collect form web for “Scelta del file Android con estensioni specifiche di file”

    Non è sconosciuto quale browser appartenente all'applicazione appositamente installato può causare la tua intenzione. Penso che questo sia un caso in cui è meglio gestire qualcosa. Il mio approccio era quello di

    a) Trovare tutti i file con una particolare estensione su supporti esterni con qualcosa di simile (stavo cercando l'estensione .saf, in modo da modificare per .pdf di conseguenza):

      public ArrayList<String> findSAFs(File dir, ArrayList<String> matchingSAFFileNames) { String safPattern = ".saf"; File listFile[] = dir.listFiles(); if (listFile != null) { for (int i = 0; i < listFile.length; i++) { if (listFile[i].isDirectory()) { findSAFs(listFile[i], matchingSAFFileNames); } else { if (listFile[i].getName().endsWith(safPattern)){ matchingSAFFileNames.add(dir.toString() + File.separator + listFile[i].getName()); //System.out.println("Found one! " + dir.toString() + listFile[i].getName()); } } } } //System.out.println("Outgoing size: " + matchingSAFFileNames.size()); return matchingSAFFileNames; } 

    b) Portare questo risultato in un ListView e lasciare che l'utente tocchi il file desiderato. È ansible rendere l'elenco come desiderato, mostrando miniature, nome file, ecc.

    Sembra che ci vorrà molto tempo, ma non lo sapevi e saprai il comportmento di each dispositivo.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.