2017-07-13 1 views
1

J'ai lu des milliers de questions sur ce sujet mais je n'ai trouvé aucune réponse utile.Comment créer un fichier correspondant au filtre d'intention personnalisé pour ouvrir mon application?

Je dois créer un fichier (contenant une chaîne) qui clique dessus depuis l'application de téléchargement ou le gestionnaire de fichiers que je veux ouvrir mon application. (Juste mon application)

je peux créer un fichier en fonction des besoins: nom de fichier, l'extension de fichier ou tipe mime

Chaque tentative a échoué: ou mon application intercepté un fichier ou mon application n'a pas intercepté mon dossier

donc, mes questions est:

1) comment créer un fichier selon les besoins?

2) comment créer un filtre d'intention pour ce fichier?

THz tant

Répondre

0

sdk Parfois android est pas bien fait, cela est un cas:

En utilisant Nexus 6P Stock 7.1.2 cliquez sur le fichier téléchargé générer differente de base sur l'intention de l'application que vous êtes . Je souligne le fait que l'appareil n'a pas d'application externe et les micrologiciels sont en stock. Ci-dessous la liste d'intention générée par le système des applications différentes

De Donwnloads

act=android.provider.action.MANAGE_DOCUMENT 
dat=content://com.android.providers.downloads.documents/document/152 
cmp=com.android.providers.downloads.ui/.TrampolineActivity 

De récentes (à l'intérieur Téléchargements)

act=android.intent.action.VIEW 
dat=content://com.android.providers.downloads.documents/document/152 
typ=application/json 

De l'explorateur de fichier android officiel (à l'intérieur des paramètres)

act=android.intent.action.VIEW 
dat=content://com.android.externalstorage.documents/document/primary:Download/20-conversation.nc 
typ=application/octet-stream 

La seule solution que j'ai trouvée pour intercepter toutes les intentions était la suivante (mon fichier est xxxx.nc et contient une chaîne JSON):

<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:mimeType="*/*" 
     android:pathPattern=".*\\.nc" 
     android:scheme="content"/> 
</intent-filter> 
<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:mimeType="application/json" 
     android:scheme="content"/> 
</intent-filter> 

J'espère que les gestionnaires de fichiers tiers ne créent pas plus d'entropie

+0

Vous êtes explicitement intéressé uniquement les fichiers ** JSON **? –

+0

je crée le fichier et j'ai besoin de le lire (comme le mot: D). J'ai utilisé json pour stocker des données dans le fichier. mais j'ai besoin de lire mon fichier pas tous les fichiers – Xan

+0

** android: mimeType = "application/json" ** signifie que tout fichier json sur votre appareil va ouvrir avec votre application –