Hi,
I have been looking into this problem myself, although I haven't had much time yet. I didn't find the root cause of the problem (i.e. who exactly opens the device before my attempt), but I have a workaround (at least until I can dig deeper and eliminate the real cause).
I don't know if you want to access the device from java, or native code, but the same approach should works for both cases:
Java: Construct a file observer instance for "/dev", with CREATE mask. When onEvent is called check, if for what you have been notified for is a video device and open it, if so. Open should succeed (based on the tests I have done so far).
Native: since FileObserver is based in inotify, the same thing should work using the native inotify API.
Important: your application must run prior to attaching the camera.
Let me know this approach has worked for you, or if you have found a more elegant solution, I'd be very interested.
Andras