Reputation: 3759
This is my Torch app:
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();
When my app is running, some devices cannot detect NFC tags. I noticed this happens with the Nexus 5X, specifically.
It appears certain devices can't detect NFC when the camera is running.
Can this problem be solved programmatically?
Upvotes: 13
Views: 2925
Reputation: 981
The reason is that pretty late in the development cycle of the 5X, it was found that the NFC controller polling introduced noise in the camera sensor. The only feasible fix at that time was to turn off NFC when the camera is opened.
The community states that those devices have the same problem (not exhaustive):
Upvotes: 16
Reputation: 29
To solve this problem you can add this little code to your onStop, in the activity that uses the camera. If you need NFC, in some devices you need to release the camera.
@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;
}
}
Upvotes: -1