赞
踩
To advertise that your application depends on having a camera, put a<uses-feature>
tag in the manifest file:
<manifest ... > <uses-feature android:name="android.hardware.camera" android:required="true" /> ... </manifest>
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 acamera to download your application. It's then your responsibility to check for the availabilityof the camera at runtime by calling hasSystemFeature(PackageManager.FEATURE_CAMERA)
.If a camera is not available, you should then disable your camera features.
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: TheIntent
itself, a call to start the external Activity
,and some code to handle the video when focus returns to your activity.
Here's a function that invokes an intent to capture video.
static final int REQUEST_VIDEO_CAPTURE = 1; private void dispatchTakeVideoIntent() { Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); if (takeVideoIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE); } }
Notice that the startActivityForResult()
method is protected by a condition that callsresolveActivity()
, which returns thefirst activity component that can handle the intent. Performing this checkis 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.
The Android Camera application returns the video in the Intent
deliveredto onActivityResult()
as a Uri
pointing to the video location in storage. The following coderetrieves this video and displays it in a VideoView
.
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { Uri videoUri = intent.getData(); mVideoView.setVideoURI(videoUri); } }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。