In Android it seems that the image pixel data isn't updated after the camera device is de-initialized and re-initialized in Unity. This happens when the user presses the Android menu button or by changing unity scenes.
To give you some background, I am using the image pixel data to find colors around the marker. Everything works great until the camera is de-initialized and re-initialized at which time the camera still picks up markers however the image data is no longer being updated.
I can simulate it easily by calling CameraDevice.Instance.Stop, Deinit, Init, Start ... then when I call GetCameraImage the data is never updated. It looks like it is the same image data from when the camera was stopped however the image on the screen is updating and targets are being tracked as per normal.
Is there a fix or a work around?
I solved my problem only by using this:
>> In CameraDevice.cs I make sure the camera images are cleared when it is deinitialized by adding "mCameraImages.Clear();" to the start of the Deinit() function.
Other suggestions shown here did not work in my case.
Do not ask me how i got to cameradevice.cs in unity extension, not sure if it was legal :)
Actually i think it's a bug and gotta be reported.
I think it's still not fixed due to 99% vuforia users do not need to get camera pixel colors in runtime.
It stops providing correct data after android app returning from sleep.
Huge thanks to joshsavage, by the way. Without his post i'd never solve that.