2010-06-04 4 views
13

Ceci est mon fichier manifeste. Après avoir utilisé le filtre d'intention, je télécharge le fichier ics à partir de la pièce jointe. Quand j'ouvre le fichier téléchargé, il démarre mon application. J'ai besoin d'obtenir le nom du fichier et les données du fichier sélectionné dans mon application. Que dois-je faire dans le manifeste et le fichier java. Je suis très nouveau à android peut-on m'aider ????Comment obtenir le nom de fichier de l'intention?

<application android:label="@string/app_name" android:icon="@drawable/icsicon"> 
    <activity android:name=".setMIMEfile" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="*/*" /> 
     <data android:pathPattern=".*\\.ics" />  
    </intent-filter> 
</activity> 

Répondre

24
Intent intent = getIntent();     
String name = intent.getData().getPath(); 

nom de chaîne contiendra votre chemin de fichier sélectionné, à partir de ce chemin que vous pouvez lire votre fichier

+0

Que dois-je faire dans le manifeste pour recevoir des fichiers de tous types? –

1

Vous pouvez obtenir le nom de fichier en utilisant intent.getData().

+0

comment accorder des autorisations utilisateur pour accéder au fichier dans mainfeast? et comment obtenir le nom de fichier – Sumithran

+0

Merci pour votre réponse.J'ai obtenu le chemin du fichier – Sumithran

12

Notez que

Intent intent = getIntent(); 
String name = intent.getData().getEncodedPath(); 

vous donne une chaîne codée, par exemple un espace dans le nom de fichier est codé comme "% 20". Si vous voulez ouvrir le fichier, vous devez utiliser

intent.getData().getPath() 

à la place.

1
Intent intent = getIntent(); 
String name = intent.getData().getLastPathSegment(); 
Questions connexes