繁体   English   中英

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

[英]NFC stops working on Device after Camera Intent

我正在开发一个可以拍照和扫描 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。

我想你可能遇到过这个

当我打开相机时 NFC 不可用

也许你应该尝试不同的设备,如果你有的话

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM