0

Я хочу создать приложение, которое хранит временную метку в базе данных при сканировании моей рабочей партии, содержащей тег NFC. Это будет сделано через IntentService без запуска активности. После второго сканирования другая временная метка будет сохранена в базе данных через IntentService. Никакой активности не требуется. Уведомлений будет достаточно. Активность может быть запущена пользователем вручную, чтобы просмотреть информацию.Как управлять доставкой тегов NFC в несколько приложений

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

Это нормально, если на телефоне нет приложения NFC. Но у меня есть другое приложение, которое использует NFC. И когда я просматриваю тег, Android показывает мне диалог выбора, приложение которого может обрабатывать тег. Но я не хочу этого каждый раз при сканировании тега. Я хочу использовать оба приложения, поэтому я не выбираю по умолчанию для тегов.

Итак, вопрос в том, как сканировать тег и направлять его в нужное приложение. Таким образом, тег A будет обрабатываться приложением A и тегом B приложением B, не получая каждый раз окно выбора.

Я думал, что лучший вариант должен быть, или, может быть, у кого-то есть отличная идея, как это решить.

Я научены несколько различных решений:

  1. Используйте только перезаписываемые ЦНК теги и добавить приложения Android Record (AAR) к нему. Таким образом, после сканирования будет запущено правильное приложение. (Если на переднем плане нет приложения NFC), это будет означать, что пользователь ограничен технологией тегов и должен записать его перед использованием.

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

  3. Напишите приложение, которое прослушивает все теги NFC и позволит пользователю решить, какой тег будет отправлен в какое приложение. Поэтому, когда приложение получает новый тег, он запрашивает у пользователя, какое приложение может обрабатывать тег, и сохраняет значение по умолчанию для этого конкретного тега [по идентификатору или чем-то] в базе данных. Поэтому в следующий раз он направит намерение к приложению по умолчанию для этого тега. (Или есть что-то вроде этого?)

Надеюсь, этот вопрос немного ясен. Еще я попробую уточнить это немного больше, если вам нравится ;-)

Мне очень нравится слышать, что вы думаете об этом. Или, может быть, у вас есть хорошие предложения? Пожалуйста, дайте мне знать.

Заранее благодарен.

+0

Ни # 2, ни 3 не возможны AFAIK. – CommonsWare

ответ

0

Для этого я успешно использую схему URL для конкретных приложений. Предположим, что ваша схема URL - это «kuiperstimestamp».

Тег затем должен содержать URL, как:

kuiperstimestamp://ts/20130506T034536.293 

Затем создать фильтр намерений для вашего сервиса, который включает в себя data элемента:

<intent-filter> 
    <action android:name="android.nfc.action.TAG_DISCOVERED" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="kuiperstimestamp" /> 
</intent-filter> 

Поскольку цель фильтр весьма специфичен, вы не получите диалоговое окно выбора приложения (если другое приложение или служба не имеют того же фильтра конкретных намерений, что маловероятно).

Этот подход менее специфичен для Android, чем при использовании AAR.

+0

Спасибо за ответ! Правильно. Когда я использую тип mime, как вы объяснили, я не зависим от тегов NDEF и Android. На данный момент это будет приложение для Android, но хорошо подумать о будущем. Так что лучше дать пользователю использовать тег, который можно записать. Затем система Android отлично справляется с диспетчеризацией. – kuipers