Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
414 views
in Technique[技术] by (71.8m points)

android - Starting Video Camera with Intent

I am writing a very small app that just opens the camera app ready for video. I am able to get my code to work on an Android 2.2 emulator, but it will not work on my device, Motorola Droid 1 stock 2.2 FRG22D. Any ideas where I went wrong on this code?

public class StartVid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

final int VIDEO = 1;

    Intent intent = new Intent();
    intent.setClassName("com.android.camera","com.android.camera.VideoCamera");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivityForResult(intent, VIDEO );
    finish();

It appears ThorstenW is correct. I would upvote your answer if I had enough rep. You can see from the logcat that com.android.camera could not be found and throws a fatal exception. Logcat below.

D/dalvikvm( 1159): GC_EXTERNAL_ALLOC freed 251 objects / 13456 bytes in 66ms I/ActivityManager( 1086): Starting activity: Intent { act=android.intent.action. MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.goatpen.Phobo s.QSVideo/.StartVid } I/ActivityManager( 1086): Start proc com.goatpen.Phobos.QSVideo for activity com .goatpen.Phobos.QSVideo/.StartVid: pid=483 uid=10092 gids={}

E/AndroidRuntime( 483): java.lang.RuntimeException: Unable to start activity Co mponentInfo{com.goatpen.Phobos.QSVideo/com.goatpen.Phobos.QSVideo.StartVid}: and roid.content.ActivityNotFoundException: Unable to find explicit activity class { com.android.camera/com.android.camera.VideoCamera}; have you declared this activ ity in your AndroidManifest.xml?

E/AndroidRuntime( 483): Caused by: android.content.ActivityNotFoundException: U nable to find explicit activity class {com.android.camera/com.android.camera.Vid eoCamera}; have you declared this activity in your AndroidManifest.xml?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You will not believe how easy the solution was. First the motorola droid's camera app is com.google.android.camera. This is the standard android 2.2 package name. I used adb to pull the file from /data/system/packages.xml to confirm this.

Also there is an intent to open the camera app in video recorder mode. INTENT_ACTION_VIDEO_CAPTURE.

 Intent intent = new Intent("android.media.action.VIDEO_CAMERA");

This is the intent to use to call the camera app in video mode.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...