Я сделал приложение, которое использует 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
Я искал везде, и у меня кончились идеи.