2015-06-17 14 views
5

Sono stato in grado di inviare un file utilizzando NFC, basato su tutorials on the Android developer site. Tuttavia non sono in grado di gestire la parte del ricevitore.Come ricevere file utilizzando NFC (Android Beam) in Android

Seguo http://developer.android.com/training/beam-files/receive-files.html per il lato ricevente e ricevo la notifica che il trasferimento del file Beam ha avuto esito positivo sul ricevitore. Quando l'utente fa clic su questa notifica, mi aspetto che venga avviata la mia app.

mia attività di ricezione ha i seguenti filtri intento:

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

Ma la mia attività di ricezione non viene mai chiamato anche il trasferimento di file era finito. Come posso ricevere il file nella mia app?

+0

Perché pensi che la vostra attività shoyld iniziare? Non c'è nulla nell'intento con qualcosa da NFC. – greenapps

+0

Quando l'utente fa clic sulla notifica che il trasferimento del raggio ha esito positivo, è necessario avviare la mia app. Ecco cosa sto cercando di fare. http://developer.android.com/training/beam-files/receive-files.html – user3847939

risposta

0

Da Receiving Files from Another Device:

Nota: per il trasferimento di file Android Beam, si riceverà un contenuto URI nel ACTION_VIEW intento se il primo file in ingresso ha un tipo MIME di "audio/*", "image/* ", o" video/* ", a indicare che il file è relativo ai media.

A causa del modo in cui <data ... /> filtri vengono elaborate (vedi Data Test e Data Element), il filtro intento si traduce in

  • intento azione VISTA e MIME tipo "image/*" e URI con lo schema di "file:", o
  • intento azione VISTA e MIME tipo "video/*" e URI con schema "file:".

quindi deve adattarsi a qualsiasi dei tipi MIME e qualsiasi delle URI che vengono dati nel dato di (s) ..

Di conseguenza il filtro intento non può mai corrispondere come sia, il " image/* "Il tipo MIME e il tipo MIME" video/* "generano un URI del contenuto e non un URI" file: ". Quindi, saltando la parte del filtro URI o spostando lo schema filtrato in "contenuto" dovrebbe fare il trucco.

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

o

<intent-filter> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <data android:mimeType="image/*" /> 
    <data android:mimeType="video/*" /> 
    <data android:scheme="content" /> 
</intent-filter> 
Problemi correlati