2016-05-22 15 views
0

OpenFileChooser ist ein großes Problem für mich und vielleicht für viele andere .... gibt es eine vollständige Lösung für die Eingabe-Typ in Android? Der obige Code funktioniert für Version 3.0+ und 4.1 ... arbeitet nicht für andere Version biger als 4,1 ... seit Wochen versucht, eine Lösung zu finden, aber ohne ErfolgAndroid-Datei-Chooser-Eingabe-Typ für Bild-Upload

// For Android 3.0+ 
      public void openFileChooser(ValueCallback uploadMsg, String acceptType) { 
      mUploadMessage = uploadMsg; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("*/*"); 
      MyWb.this.startActivityForResult(
      Intent.createChooser(i, "File Browser"), 
      FILECHOOSER_RESULTCODE); 
      } 

     //For Android 4.1 
      public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){ 
       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("image/*"); 
       MyWb.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MyWb.FILECHOOSER_RESULTCODE); 

      } 

Antwort

0

Die folgenden Verfahren eine herkömmliche Art und Weise ist, ein Bild aus einer Datei zu wählen. Die Absicht verwendet onActivityResult(), um die vom Benutzer ausgewählten Daten abzurufen.

Zuerst erstellen Sie die Absicht.
// Creates an Intent to pick a photo Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ausführen dann die Absicht:
// ARGS: the intent, a key to access later startActivityForResult(i, 1);

Sie müssen jetzt setzen ein onActivityResult(int requestCode, int resultCode, Intent data) (detaillierte Anweisungen zur Verfügung here). Hier ist ein Code Beispiel:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1 && resultCode == RESULT_OK && data != null) { 
     Uri selectedImage = data.getData(); 
     try { 
      // Do whatever you want with this bitmap (image) 
      Bitmap bitmapImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage); 
      Log.i("Image Path", selectedImage.getPath()); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

die Methode direkt in Ihre Klasse Put. Sie können nun mit dem Bitmap, der empfangen wurde, machen, was Sie wollen.

+0

Danke für Ihre Antwort, aber für Android-Version 4.1+ die Dateiauswahl öffnet sich nicht .... –

Verwandte Themen