This lesson teaches you to

You should also read

Try it out

This lesson explains how to capture video using existing camera
applications.

Your application has a job to do, and integrating videos is only a small
part of it. You want to take videos with minimal fuss, and not reinvent the
camcorder. Happily, most Android-powered devices already have a camera application that
records video. In this lesson, you make it do this for you.

Request Camera Permission

To advertise that your application depends on having a camera, put a
<uses-feature> tag in the manifest file:

If your application uses, but does not require a camera in order to function, set android:required to false. In doing so, Google Play will allow devices without a
camera to download your application. It's then your responsibility to check for the availability
of the camera at runtime by calling hasSystemFeature(PackageManager.FEATURE_CAMERA).
If a camera is not available, you should then disable your camera features.

Record a Video with a Camera App

The Android way of delegating actions to other applications is to invoke an Intent that describes what you want done. This process involves three pieces: The
Intent itself, a call to start the external Activity,
and some code to handle the video when focus returns to your activity.

Notice that the startActivityForResult() method is protected by a condition that calls
resolveActivity(), which returns the
first activity component that can handle the intent. Performing this check
is important because if you call startActivityForResult() using an intent that no app can handle,
your app will crash. So as long as the result is not null, it's safe to use the intent.

View the Video

The Android Camera application returns the video in the Intent delivered
to onActivityResult() as a Uri pointing to the video location in storage. The following code
retrieves this video and displays it in a VideoView.