2015-06-17 36 views
5

Udało mi się wysłać plik za pomocą NFC, na podstawie tutorials on the Android developer site. Jednak nie jestem w stanie obsłużyć części odbiornika.Jak otrzymać plik za pomocą NFC (Android Beam) w Androidzie

Podążam za po stronie odbiorcy i otrzymuję powiadomienie, że transfer pliku wiązki zakończył się powodzeniem na odbiorniku. Gdy użytkownik kliknie to powiadomienie, oczekuję, że moja aplikacja zostanie uruchomiona.

Moja aktywność odbiorcza posiada następujące filtry zamiar:

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

Ale moja aktywność odbiorcza nie pobiera nazywane nawet przesyłania plików została zakończona. Jak mogę otrzymać plik w mojej aplikacji?

+0

Dlaczego sądzisz, że Twoja aktywność shoyld zacząć? Nie ma nic w zamiarach z czymś z NFC. – greenapps

+0

Gdy użytkownik kliknie powiadomienie, że transfer wiązki zakończy się sukcesem, moja aplikacja powinna zostać uruchomiona. Oto, co próbuję zrobić. http://developer.android.com/training/beam-files/receive-files.html – user3847939

Odpowiedz

0

Od Receiving Files from Another Device:

Uwaga: W przypadku przesyłania plików Android Beam, pojawi się zawartość URI w ACTION_VIEW intencją jeśli pierwszy plik przychodzący ma typ MIME "audio/*", „image/* "lub" video/* ", wskazując, że plik jest powiązany z multimediami.

Ze względu na sposób, w jaki <data ... /> filtry są przetwarzane (patrz Data Test i Data Element), Twój filtr zamiarem przekłada się

  • intencją VIEW działanie typu i MIME "image/*" i URI ze schematem "file:", lub
  • zamierzone działanie ZOBACZ i Typ MIME "wideo/*" i URI ze schematem "plik:".

Więc musi to pasuje do żadnego z typów MIME i którykolwiek z URI, które są podane w elemencie (ów) danych ..

konsekwencji Twój filtr intencją nigdy nie może się równać zarówno w postaci " image/* "Typ MIME i typ wideo MIME" video/* "spowoduje identyfikator URI treści, a nie" plik: "URI. Dlatego pomijanie części filtra URI lub wysyłanie przefiltrowanego schematu do "treści" powinno wystarczyć.

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

lub

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