2015-06-17 2 views
5

Мне удалось отправить файл, используя NFC, на основе tutorials on the Android developer site. Однако я не могу обработать часть получателя.Как получить файл с помощью NFC (Android Beam) в Android

Я следую за http://developer.android.com/training/beam-files/receive-files.html для принимающей стороны, и получаю уведомление о том, что передача сигнала пучка прошла успешно на ресивере. Когда пользователь нажимает на это уведомление, я ожидаю, что мое приложение должно быть запущено.

Моя приемная деятельность имеет следующие фильтры намерений:

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

Но моя принимающая деятельность никогда не вызывается даже передача файла была закончена. Как я могу получить файл в своем приложении?

+0

Почему вы думаете, что ваша деятельность shoyld начать? Нет ничего в намерении с чем-то из NFC. – greenapps

+0

Когда пользователь нажимает уведомление о том, что передача луча имеет успех, тогда мое приложение должно быть запущено. Вот что я пытаюсь сделать. http://developer.android.com/training/beam-files/receive-files.html – user3847939

ответ

0

От Receiving Files from Another Device:

Примечание: Для передачи файлов Android Beam, вы получите содержание URI в ACTION_VIEW умысел, если первый входящий файл имеет тип MIME из "аудио/*", «изображение/* "или" video/* ", что указывает на то, что файл связан с носителями.

Из-за способа, как <data ... /> фильтры обрабатываются (см Data Test и Data Element), ваши намерения фильтр переводит

  • Намерение действия VIEW и MIME тип "изображения/*" и URI со схемой «файл:», или
  • ЗАМЕЧАНИЕ и MIME-тип «видео/*» и URI со схемой «файл:».

Так он должен соответствовать любой из типов MIME и любой из URI, которые даны в элементе (ы) данных ..

Следовательно ваша цель фильтр никогда не может сравниться в обоих, " image/* "MIME type и тип" video/* "MIME приведут к URI содержимого, а не к URI« file: ». Следовательно, либо пропускать часть фильтра URI, либо отбирать фильтрованную схему до «содержимого» следует делать трюк.

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

или

<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> 
Смежные вопросы