2012-12-05 43 views
0
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE) 

這個意圖將顯示攝像機列表中進行選擇,如果我已經安裝了其他相機的應用程序,所以我的問題是如何直接調用系統的攝像頭,不選別人。機器人如何拍照只能使用系統相機

+0

我覺得很難直接調用系統相機應用程序,因爲不同的ROM有不同的相機活動名稱。我發現下面的一些ROM相機活動:\t \t \t \t \t \t //com.google.android.gallery3d-com.android.camera.CameraActivity | Galaxy Nexus的 \t \t \t \t \t \t \t //com.sec.android.app.camera-com.sec.android.app.camera.Camera |銀河S3 \t \t \t \t \t \t \t //com.android.hwcamera-com.android.hwcamera.Camera | huawei – asfman

回答

3

你可以試試這個,

Intent camIntent = new Intent("android.media.action.IMAGE_CAPTURE"); 
     Intent systemCamIntent = new Intent(camIntent); 
     systemCamIntent.setComponent(new ComponentName("com.sec.android.app.camera", "com.sec.android.app.camera.Camera")); 
     startActivity(systemCamIntent); 

您可以通過下面的代碼獲得相機的名單,那麼你應該創建一個邏輯,瞭解哪些是系統相機不同的房間。

List<Intent> yourIntentsList = new ArrayList<Intent>(); 
     List<ResolveInfo> listCam = packageManager.queryIntentActivities(camIntent, 0); 
     for (ResolveInfo res : listCam) {   
      finalIntent = new Intent(camIntent); 
      finalIntent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name)); 
      yourIntentsList.add(finalIntent); 
     } 
+0

謝謝,實際上現在我只是這樣處理。 – asfman