2013-02-18 3 views
6

Beispiel: Wenn Sie auf eine Schaltfläche klicken, um ein Bild hochzuladen, erhalten Sie den Dialog zur Auswahl einer Datei. Dann können Sie eine App auswählen, die Sie auswählen möchten. Wie kann ich meine App in diesem Dialogfeld anzeigen lassen?Wie wird die Aktivität im Dialogfeld "Datei auswählen" angezeigt?

+0

können Sie Ihren Code zum Erstellen dieses Dialogfelds zum Auswählen von Dateien hinzufügen? – Shoshi

+0

@Shoshi Ich habe es nicht erstellt. Ich habe gerade eine Upload-Schaltfläche in einer Webseite angeklickt. –

+1

Sie müssen die entsprechenden [IntentFilters] (https://developer.android.com/reference/android/content/IntentFilter.html) für Ihre Aktivität in Ihrem Manifest angeben, lesen Sie bitte: [Android-Dateiauswahl] (http://stackoverflow.com/q/7856959/1267661) – Sam

Antwort

1

Fügen Sie die folgenden Absicht Filter auf Ihre Aktivität, wo Sie den Ort wollen Kommissionierung nehmen:

 <intent-filter > 
      <action android:name="android.intent.action.PICK" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:scheme="file" /> 
     </intent-filter> 
     <intent-filter > 
      <action android:name="android.intent.action.GET_CONTENT" /> 

      <category android:name="android.intent.category.OPENABLE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="*/*" /> 
     </intent-filter> 

Die erste Griffe eine Aktion holen, und der zweite Inhalte.

Sie können Ihren MimeType ändern, um die Auswahl etwas einzuschränken. Die von mir zur Verfügung gestellte App bringt Ihre App in den Selektor für jede Art von Datei.

+0

Ich denke, er sollte den MimeType etwas einschränken. In meiner App, als ich */* eingab, begann es überall zu erscheinen. – DigCamara

+0

@DigCamara Der aktuelle Mime-Typ sagt im Grunde: "Meine App kann Ihnen helfen, PDFs, Bilder, Videos, Textdateien oder praktisch alles, was existiert, auszuwählen." Er kann den Dateityp beliebig ändern, wenn er nur einen Dateityp unterstützt. –

+0

- wir sind grundsätzlich einverstanden. Ich dachte nur, es müsste explizit ausgeschrieben werden, damit er nicht in diese Falle gerät. – DigCamara

2

Sie müssen der Manifestdatei in der Aktivität, die Sie für den Upload verwenden möchten, einen Intent-Filter hinzufügen. Zum Beispiel: Ich habe eine Aktivität, die Bildimport verarbeitet, das ist was ich geschrieben habe.

activity android:name="com.ImportTheme"> 

    <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:host="*" android:scheme="file" android:mimeType="image/*" />    
    </intent-filter> 

</activity> 

Wie Sie sehen können, müssen Sie MIME-Typ, der geeignet ist, was Sie suchen, an meinem Beispiel möchte ich nur Bilder addieren - png, jpg, etc.

Check in den nächsten link, Sie haben eine Liste von Mime-Typen.

0

simple and complete example code (less than 50 lines) für app, die Android dem Benutzer zusammen mit Menüliste von kompatiblen Apps (Polaris, Browser, etc.) beim Öffnen einer TXT-Datei präsentiert wird.

Haftungshinweis: hasnt zuvor Benutzer Fall bestimmt einem Standard-App

Anmerkung: TXT für andere Erweiterungen geändert werden kann, immer die Aufmerksamkeit Typen mimen zahlen.