79

I wish to simulate camera in the android emulator using the webcam. Basically I need to only take photos with the camera in the emulator (live preview is not needed i.e if it makes it any easier)

I followed the tutorial here which is the only one I could find that was close to my requirements

But many of the libraries used in that tutorial(like android.hardware.CameraDevice) are not available in present sdk and are replaced by new libraries(like android.hardware.camera).

Any help on how to do this in the present sdk(2.1 or 2.2) would be much appreciated.

Primal Pappachan
  • 25,857
  • 22
  • 67
  • 84

9 Answers9

145

In your AVD advanced settings, you should be able to set front and back cameras to Webcam() or Emulated.

enter image description here

Adam Johns
  • 35,397
  • 25
  • 123
  • 176
12

Update: ICS emulator supports camera.

Paramvir Singh
  • 2,354
  • 1
  • 20
  • 20
  • 3
    Taking pictures work (with an intent), but no live preview (the Camera.open() doesn't work). – Nux Dec 16 '12 at 11:37
5

Some elaboration, in the hope of clarifying what has already been said:

As stated above, Webcams are supported natively in the current SDK, but only on recent android versions (4.0 and higher)

Webcam detection is automatic where present. In 4.0.3, the camera defaults to the front-facing camera so a lot of applications (especially pre-2.3 applications, which can only fetch the default camera, i.e. the back-facing one) will still show you the old checkerbox-with-moving-square stand-in instead.

I think some more info is available in the following post: Camera on Android Eclipse emulator:

Or at least, that's the most information I've been able to find--aside from the brief, uninformative statements in the release notes for the SDK tools.

Community
  • 1
  • 1
4

If you're working with command-line tools or just want to edit your config.ini file directly, you have options:

Option 1: use command-line options

emulator -help | grep cam # => shows items such as -camera-back
emulator -help-camera-back # => show supported values for this option
emulator -avd $MY_AVD -camera-back virtualscene # Example invocation

If you want to use your actual camera instead of a mock, the option's value will be webcam${N}. How do you know what ${N} should be? emulator -webcam-list lists and describes the cameras available on your computer.

Option 2: edit the config file

Using the legal values we learnt above, edit the file ~/.android/avd/${MY_AVD}/config.ini and add a line (I'll use virtualscene as my value of choice):

hw.camera.back = virtualscene
JellicleCat
  • 28,480
  • 24
  • 109
  • 162
2

Update of @param's answer.

ICS emulator supports camera.

I found Simple Android Photo Capture, which supports webcam in android emulator.

Ahsan
  • 11,516
  • 12
  • 52
  • 79
0

The newest camera2 apis work fine w/ an emulator that has camera support enabled.

Example for using the newer API:

https://github.com/googlesamples/android-Camera2Basic/blob/master/Application/src/main/java/com/example/android/camera2basic/AutoFitTextureView.java

Ajax
  • 2,465
  • 23
  • 20
0

Just in case you just need to show a picture in response to a camera request, there is image-to-camera.

Just download, build, install, copy an image of your choice to the device, and you can select it via the app, which is an alternative to the built-in camera.

serv-inc
  • 35,772
  • 9
  • 166
  • 188
0

Does not seem like it, but android recognises a webcam as a device. Every time I run the emulator my webcam's active light comes on.

Keagan Ladds
  • 458
  • 3
  • 15
0

There is an updated version of Tom Gibara's tutorial. You can change the Webcam Broadcaster to work with JMyron instead of the old JMF.

The new emulator (sdk r15) manage webcams ; but it has some problems with integrated webcams (at least with mine's ^^)

Solostaran14
  • 1,656
  • 20
  • 22