Для реализации коммуникаций PP используется либо метод setNdefPushMessage, либо метод setNdefPushMessageCallback класса NfcAdapter. Первый метод получает NdefMessage и, по меньшей мере, одну активность (может также принимать множество активностей, одну за другой). Это сообщение NDEF будет рассылаться, если любая из предоставленных активностей находится на переднем плане, когда считыватель NFC запрашивает сообщение. Второй метод похож на первый, но вместо предоставления сообщения NDEF будет инициирован обратный вызов, который обеспечит выдачу сообщения в нужное время. Хотя формально допускается настройка обоих этих методов для одной и той же активности одновременно, обратный вызов имеет преимущество и только он будет запущен, если настроены оба метода. Чтобы отменить любой из методов, его следует вызвать еще раз, передав в качестве сообщения NDEF или обратного вызова значение null. Использование метода обратного вызова предпочтительнее, когда сообщение NDEF, которое должно быть отправлено, имеет более динамичную природу, основываясь на самых актуальных данных в приложении.
Как и в описанной выше системе диспетчеризации переднего плана, эти методы должны вызываться в onResume и отключаться onPause. Экземпляр NdefMessage может быть всем, чем угодно, однако объект активности должен находиться на переднем плане, когда считыватель пытается получить ваши данные.
В версии Android. появился еще один новый метод, о котором следует знать: setOnNdefPushCompleteCallback. Он настраивает обратный вызов для активности (или активностей), который позволяет узнать, когда сообщение NDEF было передано через PP. Однако он будет вызван в потоке привязки, а не в потоке пользовательского интерфейса. Это значит, что он как бы плавает внутри вашего приложения. Для взаимодействия с активностью понадобится использовать обработчик, кроме случая, когда работать с аргументом данного обратного вызова не требуется. В качестве параметра этот обратный вызов принимает объект NfcEvent, в котором установлено только поле nfcAdapter. Это не особенно полезно при выяснении, какой обработчик применить для взаимодействия с соответствующей активностью. Поэтому в случае настройки коммуникаций PP в приложении лучше всего использовать только одну активность.
Ранее мы рассматривали применение дескриптора для датчиков, что позволяло гарантировать наличие в устройстве датчика, необходимого приложению. Датчик NFC не является исключением. Для гарантии того, что устройство располагает необходимым оборудованием NFC, в файл http://lekarstvaizgermanii.forumei.net/t577-topic AndroidManifest.xml понадобится добавить следующую строку:
Чтобы обеспечить приложению доступ к оборудованию NFC, файл AndroidManifest. xml должен содержать такую строку:
Опубликовал katy
February 19 2015 17:39:47 ·
0 Комментариев ·
2769 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.