Android NFC, передать тег другому слушателю при обнаружении - PullRequest
0 голосов
/ 22 октября 2011

У меня есть приложение NFC, в котором все манифест-фильтры настроены в манифесте, чтобы реагировать только на определенный вид технологии NFC.

Эта часть работает, но я не понимаю, что она будет делать, если ДРУГОЕ приложение будет иметь точно такие же фильтры.

Мое приложение игнорирует все теги nfc, за исключением тегов определенного типа, при сканировании мое приложение всплывает из onDestroyed () (или вообще никогда не запускается) в onCreate () и считывает информацию из тега.

Теперь это дополнительно фильтруется информацией в моих тегах, я поместил специальный вид строки, который ищет мое приложение. Но, к сожалению, это требует, чтобы он прочитал тег ПОСЛЕ определения того, что это за технология. Если это не одна из моих строк, приложение исчезнет, ​​но я не понимаю, что произойдет, если другое приложение будет искать такую ​​же технологию.

Я бы предпочел, чтобы мое приложение загружалось при просмотре этого тега, а затем игнорировалось. ТОГДА другие приложения с точно таким же набором фильтров могут загружаться, и им нужно идти по тегу. Но я не понимаю, как это делается, и я могу предвидеть, что многие NFC-приложения появятся на рынке.

Понимание ценится.

Ответы [ 2 ]

1 голос
/ 22 октября 2011

но я не понимаю, что произойдет, если другое приложение будет искать такую ​​же технологию

Предположительно, пользователю будет представлен выбор активности.

Я бы предпочел, чтобы мое приложение загружалось при просмотре этого тега, а затем игнорировалось. ТОГДА другие приложения с точно таким же набором фильтров могут загружаться, и им нужно перейти к тегу.

Если мои предположения о выборе активности верны, то единственный способ сделать это будет возможным, если:

  1. Пользователь выбирает ваше приложение в качестве обработчика по умолчанию для этого типа тега NFC, после установки приложения и нажатия соответствующего тега, и

  2. После того, как вы определили, что это не ваш тип тега, вы открываете свой собственный выбранный вручную выбор действий для любого другого соответствующего действия, отфильтровывая себя из списка, используя PackageManager и queryIntentActivities() и такие

Но я не понимаю, как это делается, и я могу предвидеть, что многие NFC-приложения появятся на рынке.

Я прогнозирую, что большинство приложений NFC будут ориентированы на NDEF-совместимые теги, что делает это намного проще.

0 голосов
/ 26 октября 2011

Выбор активности действительно покажет, может ли несколько приложений обрабатывать намерение ACTION_TECH_DISCOVERED.Если я правильно понимаю вашу проблему, вы действительно не сможете запретить программе выбора активности показывать, могут ли теги обрабатывать несколько приложений, если только вы не используете диспетчеризацию на переднем плане, которая позволяет вашему приложению обрабатывать намерение, если возможно, если ваше приложение находится на переднем плане.Он заменит любое другое приложение, которое может его обработать, и не будет отображать средство выбора активности.Если после проверки данных и выяснения, что это не тот тег, который вам нужен, я думаю, что вы потенциально можете передать намерение, чтобы другие приложения могли попытаться обработать его.Проверьте:

http://developer.android.com/guide/topics/nfc/advanced-nfc.html#foreground-dispatch

для получения дополнительной информации.

...