相机意图后 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);
总结一下:
- activity 启动并在 onResume() 中调用 setupForgroundDispatch()。
- NFC 标签扫描按预期工作
- 我通过Intent点击一个按钮启动相机
- 如果我不拍照并返回我的 activity -> NFC 工作正常
- 如果我拍照并调用 onActivityResult() -> NFC 在大约 20-30 秒内不工作,然后再次开始工作。我的意思是 NFC 在整个设备上停止工作,而不仅仅是在应用程序中。我可以拍照,然后恢复到我的 activity,然后从最近的应用程序中删除该应用程序,NFC 在上述 20-30 秒内不起作用。然后重新开始工作。
我试过的
- 我检查过 stopForegroundDispatch() 会在相机启动前调用,setupForegroundDispatch() 会在相机完成后调用
- 我从 onActivityResult() 中删除了我的代码,以确保任何其他代码都会干扰 NFC。
我想你可能 运行 喜欢这个
也许你应该尝试使用不同的设备,如果你有的话
我正在开发一款可以拍照和扫描 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);
总结一下:
- activity 启动并在 onResume() 中调用 setupForgroundDispatch()。
- NFC 标签扫描按预期工作
- 我通过Intent点击一个按钮启动相机
- 如果我不拍照并返回我的 activity -> NFC 工作正常
- 如果我拍照并调用 onActivityResult() -> NFC 在大约 20-30 秒内不工作,然后再次开始工作。我的意思是 NFC 在整个设备上停止工作,而不仅仅是在应用程序中。我可以拍照,然后恢复到我的 activity,然后从最近的应用程序中删除该应用程序,NFC 在上述 20-30 秒内不起作用。然后重新开始工作。
我试过的
- 我检查过 stopForegroundDispatch() 会在相机启动前调用,setupForegroundDispatch() 会在相机完成后调用
- 我从 onActivityResult() 中删除了我的代码,以确保任何其他代码都会干扰 NFC。
我想你可能 运行 喜欢这个
也许你应该尝试使用不同的设备,如果你有的话