我的工作:
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);
总而言之:
-
-
NFC标签的扫描工作正常
-
-
如果我不拍照并继续我的活动->NFC运作良好
-
如果我拍了一张照片并且onActivityResult()将被调用->NFC不工作约20-30秒,然后重新开始工作。我的意思是NFC停止了对整个设备的工作,而不仅仅是在应用程序中。我可以拍一张照片,然后继续我的活动,然后从最近删除应用程序和NFC不工作的提到20-30秒。然后重新开始工作。
我试过的
-
我检查了stopForegroundDispatch()是否会在相机启动前调用,以及setupForegroundDispatch()是否会在相机启动后调用
-
我从onActivityResult()中删除了代码,以确保任何其他代码都会干扰NFC。