相机打开时 NFC 不可用

Posted

技术标签:

【中文标题】相机打开时 NFC 不可用【英文标题】:NFC unavailable when camera is open 【发布时间】:2016-04-09 00:16:05 【问题描述】:

这是我的 Torch 应用:

final Camera.Parameters p;
Camera camera=Camera.open();

camera.setPreviewTexture(new SurfaceTexture(0));
p = camera.getParameters();

p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

当我的应用程序运行时,某些设备无法检测到 NFC 标签。我注意到这发生在 Nexus 5X 上,特别是。

在相机运行时,某些设备似乎无法检测到 NFC。

这个问题可以通过编程解决吗?

【问题讨论】:

我在三星 S3 上没有看到这个。您可以尝试应用程序“NFC Developer”。这个应用结合了相机和NFC 【参考方案1】:

很遗憾,没有,但我真诚地希望 Nexus 5X 是您遇到这种情况的唯一设备。

原因是在 5X 的开发周期很晚的时候,发现 NFC 控制器轮询在相机传感器中引入了噪声。当时唯一可行的解​​决方法是在打开相机时关闭 NFC :(

【讨论】:

Nexus 5X 不是唯一的设备,因为它是我遇到的第二个设备。但我忘记了第一个设备是哪个。 我在 LG G5 上也遇到过这种情况。相机预览打开时无法扫描任何 NFC 标签。 同样的问题出现在搭载 android 8.1 的三星 XCover 4 上。使用相机后,我什至无法扫描 20-30 秒。 在我的 Pixel 1 XL 上也会发生 任何搭载 Android 11 的三星都有这个问题【参考方案2】:

要解决这个问题,您可以将这个小代码添加到您的 onStop,在使用相机的活动中。如果您需要 NFC,在某些设备中您需要释放摄像头。

@Override
protected void onStop() 
    super.onStop();
    try
    
        android.hardware.Camera mCamera = android.hardware.Camera.open();
        mCamera.release();
        mCamera = null;
    
    catch(RuntimeException e)
    
        Log.e(TAG, "init_camera: " + e);
        return;
    

【讨论】:

此解决方案有效,因为 somo 设备的摄像头中有 NFC 读取器芯片。如果您松开相机,则 NFC 在下一个屏幕中正常。 除了它没有解决能够同时使用NFC /和/相机的问题。它正在关闭相机,以便您可以使用 NFC。这是一种解决方法,而不是解决方案,对于在扫描 NFC 标签的同时需要视频的应用程序来说并不理想。 好的,没错。对我来说,这解决了我的应用程序中的问题。

以上是关于相机打开时 NFC 不可用的主要内容,如果未能解决你的问题,请参考以下文章

相机打开时闪光灯不工作

打开时启用倒计时的测验

相机打开时如何释放相机?

vsco 媒体不可用

win10此电脑里面的文件被删除,点击显示不可用?

Blend 打开时没有语言和版本