相机意图后,NFC会在设备上停止工作

时间:2018-09-21 06:46:03

标签: android android-camera nfc mystic

我正在开发一款可拍照并扫描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 :(得分:1)

我认为您可能遇到了这个问题

NFC is not available when I opened camera

如果有的话,也许您应该尝试使用其他设备