2013-02-18 2 views
6

Exemple: lorsque vous cliquez sur un bouton pour télécharger une image, la boîte de dialogue vous permet de choisir un fichier. Ensuite, vous pouvez sélectionner une application que vous souhaitez choisir. Comment puis-je faire apparaître mon application dans cette boîte de dialogue?Comment faire apparaître une activité dans la boîte de dialogue "Choisir un fichier"?

+0

pouvez-vous ajouter votre code pour créer cette boîte de dialogue de choix de fichier? – Shoshi

+0

@Shoshi Je ne l'ai pas créé. Je viens de cliquer sur un bouton de téléchargement dans une page Web. –

+1

Vous devez déclarer les [IntentFilters] appropriés (https://developer.android.com/reference/android/content/IntentFilter.html) pour votre activité dans votre manifeste, veuillez lire: [sélecteur de fichiers Android] (http://stackoverflow.com/q/7856959/1267661) – Sam

Répondre

1

Ajouter les filtres d'intention suivants à votre activité où vous voulez que la cueillette aura lieu:

 <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> 

Le premier gère un Pick action, et le second obtenir du contenu.

Vous voudrez peut-être changer votre mimeType pour restreindre un peu la sélection. Celui que j'ai fourni mettra votre application dans le sélecteur pour chaque type de fichier.

+0

Je pense qu'il devrait restreindre le mimeType un peu. Dans mon application, quand j'ai mis */*, il a commencé à apparaître partout. – DigCamara

+0

@DigCamara Le type mime actuel dit essentiellement "Mon application peut vous aider à choisir des fichiers PDF, des images, des vidéos, des fichiers texte ou tout ce qui existe". Il peut le changer pour n'importe quel type spécifique de fichier s'il veut seulement prendre en charge un type de fichier. –

+0

- nous sommes fondamentalement d'accord. Je pensais juste qu'il devait être écrit explicitement pour ne pas tomber dans ce piège. – DigCamara

2

Vous devez ajouter un filtre Intent à votre fichier manifeste dans l'activité que vous souhaitez gérer. Par exemple: J'ai une activité qui gère l'importation d'image, c'est ce que j'ai écrit.

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> 

Comme vous pouvez le voir, vous devez ajouter le type MIME approprié à ce que vous cherchez, à mon exemple, je ne veux que des images - png, jpg, etc.

Vérifiez dans le prochain link, vous avez une liste de types mime.

0

simple and complete example code (less than 50 lines) pour l'application que android présentera à l'utilisateur avec la liste de menu des applications compatibles (polaris, navigateur, etc) lors de l'ouverture d'un fichier TXT.

Avertissement: dans le cas où l'utilisateur hasnt déterminé précédemment une application par défaut

Note: TXT peut être modifié pour d'autres extensions, en faisant toujours attention aux types MIME.

Questions connexes