NFC перестает работать на устройстве после намерения камеры - PullRequest
0 голосов
/ 21 сентября 2018

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

Что я делаю:

В onResume () я вызываю setupForegroundDispatch (), а в onPause () я вызываю stopForegroundDispatch ().

public static void setupForegroundDispatch(final Activity activity, NfcAdapter adapter) {
    final Intent intent = new Intent(activity, activity.getClass());
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    final PendingIntent pendingIntent = PendingIntent.getActivity(activity, 0, intent, 0);
    adapter.enableForegroundDispatch(activity, pendingIntent, null, null);
}

public static void stopForegroundDispatch(final Activity activity, NfcAdapter adapter) {
    adapter.disableForegroundDispatch(activity);
}

Чтобы запустить камеру, я звоню:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
                imageCaptureUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_FROM_CAMERA);

Чтобы подвести итог:

  • Действие начинается и в onResume () setupForgroundDispatch ()будет вызвано.
  • сканирование тегов NFC работает как положено
  • Я нажимаю кнопку, чтобы запустить камеру с помощью Intent
    • Если я не делаю фотографию и возвращаюсь назадв моей деятельности -> NFC работает хорошо
    • Если я сделаю снимок и будет вызвана onActivityResult () -> NFC не работает в течение 20-30 секунд, а затем начинает работать снова.Я имею в виду, что NFC перестает работать на всем устройстве, а не только в приложении.Я могу сделать фотографию, затем возобновить свою деятельность, затем удалить приложение из последних выпусков, и NFC не работает в течение упомянутых 20-30 секунд.Затем снова начинает работать.

То, что я пробовал

  • Я проверил, что stopForegroundDispatch () будет вызываться до запуска камеры и что setupForegroundDispatch ()будет вызван после того, как камера будет сделана
  • Я удалил свой код из onActivityResult (), чтобы гарантировать, что любой дальнейший код мешает NFC.

1 Ответ

0 голосов
/ 21 сентября 2018

Я думаю, что вы, возможно, столкнулись с этим

NFC недоступен, когда я открыл камеру

Возможно, вам следует попробовать другое устройство, если оно у вас есть

...