2013-09-27 31 views
3

如何在應用程序中打開默認相機?如何在不顯示選擇器的情況下打開默認相機?

我不想打開選擇器(它的客戶的要求)。我正在使用這個意圖android.media.action.IMAGE_CAPTURE和調用結果的活動。

一切都很好,但像行式照相機應用,紙相機都出現在默認的攝像頭應用程序選擇器,我不想顯示選擇器。

您的關注將不勝感激。

+0

http://stackoverflow.com/questions/18599421/launch-default-camera-app-no-return看看是否有幫助 –

回答

0

您可以選擇特定活動的唯一方法就是使用明確的意圖。而對於內置攝像頭的應用程序包的名稱可能是不同的,依賴於設備

0

我相信你可以找到你在下面的鏈接的答案(和代碼):

How to launch android camera using intents

筆者狀態有明確即: 「上面的代碼應該啓動默認攝像頭活動您的手機上」

+0

此代碼不會過濾第三方應用程序,它會打開選​​擇器,如果應用程序如**線相機**或**紙相機**安裝在您的手機中 –

0
List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); 
    for (int n=0;n<list.size();n++) { 
     if((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM)==1) 
     { 
      Log.d("TAG", "Installed Applications : " + list.get(n).loadLabel(packageManager).toString()); 
      Log.d("TAG", "package name : " + list.get(n).packageName); 
      if(list.get(n).loadLabel(packageManager).toString().equalsIgnoreCase("Camera")) { 
       defaultCameraPackage = list.get(n).packageName; 
       break; 
      } 
     } 
    } 

我發現下面的解決方案和工作PERF ectly。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
takePictureIntent.setPackage(defaultCameraPackage); 
startActivityForResult(takePictureIntent, actionCode); 

您可以通過在上述意圖中設置包來過濾默認相機。我已經通過安裝兩個應用線照相機紙相機這兩個應用都顯示選擇器,但過濾通過包裝上面的代碼只開放默認的攝像頭進行了測試。

相關問題