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 forzare un GridView per utilizzare l'integer schermo (indipendentemente dalla dimensione del display)?
  • Come controllare se un bambino esiste in firebase?
  • Geofencing Android - Nessuna intenzione di venire?
  • VideoView con Gestione (function Swipe) in android
  • Come aggiornare il MediaStore di Android durante l'eliminazione della foto
  • Dimensioni scala bitmap ImageView
  • Gradle non esclude un module come richiesto
  • Problema con l'adattatore di liste espandibili
  • Android - Come interagire con una vista dopo che è stato animato?
  • android.os.NetworkOnMainThreadException a android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1117)
  • Sviluppare applicazioni Android utilizzando Html, Css e JavaScript
  • Perché android ImageSpan mostra la mia image due volte (quando i setBounds superano una certa width magica)?
  • 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.