2015-04-13 6 views
1

Проблема, которую я пытаюсь решить следующим образом:Отключить NFC функциональность из приложения

NFC-тег будет вызывать мое приложение, из которого я запускать другое приложение. Что иногда произойдет, так это то, что тег NFC переместится и будет «вновь обнаружен» по телефону и снова запустит мое приложение. Перемещение тега NFC - это то, что я не могу контролировать.

Это действительно разрушает опыт.

Что бы я хотел сделать, это когда приложение будет запущено, запуск NFC будет отключен или приостановлен, а после закрытия приложения (OnDestroy()) я включу/отключу функцию NFC.

Я не мог найти, как это можно сделать, и ваша помощь будет действительно оценена. Если у вас есть другой (связанный с кодом) подход к тому, как это можно решить, это так же хорошо.

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

Заранее спасибо.

+0

Можете ли вы получить тег, чтобы открыть требуемое приложение? В этом ответе объясняется, как это может быть достигнуто http://stackoverflow.com/a/8671967/2737421 –

+0

Достаточно ли предотвратить повторное сканирование, когда ваша деятельность NFC находится на переднем плане или вам также нужно, чтобы при запуске вашей деятельности через ваше приложение находится на переднем плане? В последнем случае: У вас есть контроль над исходным кодом этого второго приложения? –

+0

Tristan - Я уже установил NFC для открытия своего приложения. Michael - последний случай - это то, что я пытаюсь решить, и, к сожалению, второе приложение является универсальным сторонним приложением. – bergo

ответ

1

Вы можете создать псевдоним активности, который обрабатывает намерение, disable it во время работы и повторного включения его при его уничтожении.

+0

Интересная работа вокруг. Не идеальное решение, но я думаю, что это так близко, как вы можете получить для «отключения» функций NFC телефона. – Chackle

+0

Хотя этот метод действителен, имеет смысл использовать простую Службу для отслеживания состояния приложения, а также NFC, а не отключать и включать состояние вашей активности. – Vaiden

0

Вы предполагаете, что можете отключить важную функциональность телефона и отключить любую другую службу и/или приложение, зависящее от нее.

Это, конечно, неправильно. Вы должны делать только предположения относительно своего приложения.

Так что вы действительно пытаетесь отключить повторный запуск. Это можно сделать разными способами:

  1. Управление основной деятельностью launch mode и, таким образом, всем вашим приложением.
  2. Обращайтесь с намерением NFC правильно, используя Service, который контролирует состояние NFC, а также ваше приложение. Согласно замечанию Майкла, поскольку вы можете связать только NFC-намерение с Activity - вам нужно будет создать не-ui Activity (тот, который не вызывает setContentView), чтобы действовать как BroadcastListener для этого Service.
  3. Tag your app, как предложено @Tristan.
+0

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

+0

Вы можете легко создать не-пользовательский интерфейс, чтобы действовать как BroadcastListener – Vaiden

+1

Обновлен мой ответ - спасибо @MichaelRoland – Vaiden

Смежные вопросы