Чтение NFC не работает с использованием IPC - PullRequest
0 голосов
/ 03 июля 2018

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

Но после привязки к службе межпроцессного взаимодействия (IPC) NFC больше не работает должным образом:

bindService (serviceIntent, mConnection, Context.BIND_AUTO_CREATE);

В onServiceConnected я устанавливаю соединение через механизм AIDL IPC с сервисом другого приложения, и тогда это становится очень странным. Я могу сканировать метку NFC только один или два раза, а затем NFC перестает работать вообще. Метод onNewIntent больше не вызывается.

Я попытался нажать кнопку «Домой», активность переходит в фоновый режим, и когда я пытаюсь прочитать оттуда тег NFC, он даже не показывает диалоговое окно, в котором предлагаются различные приложения с поддержкой NFC. Он снова начинает работать только после перезапуска NFC в настройках.

Я использую Galaxy S5 с Android Marshmallow. NFC работает нормально в других приложениях (я думаю, они не используют IPC). Я также использую диспетчеризацию переднего плана, как описано здесь: https://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc#foreground-dispatch

Я искал везде, и у меня кончились идеи.

1 Ответ

0 голосов
/ 04 июля 2018

Так что он работает с тегами IsoDep NFC определенного типа (теги внутри ID-карты в данном случае), которые я должен использовать. До сих пор я использовал неправильные типы тегов NFC. Я предполагаю, что проблема связана со Службой, которую я обязую Это сервис от стороннего приложения, поэтому я не могу его изменить.

...