2012-01-08 190 views
3

有什麼方法可以檢測到安裝在Android設備上的前置攝像頭的位置?如何檢測前置攝像頭放置在設備上的位置?

我認爲在手機上它總是在耳機附近。但是所有平板電腦都不同。我查看了Asus Transformer,前置攝像頭位於側面(如果我將其放在橫向模式下),但三星Galaxy Tab(第一代Android 2.2)的相機就像所有手機一樣。

那麼有辦法檢查前置攝像頭的位置?也許我可以用代碼來實現,也許有設備的規則?就像Android 2.x設備一樣,Android 3.x設備一直在身邊?那麼Adnroid 4.x設備呢?

+0

您是否想出了一種替代方法來猜測位置? – Eric 2016-07-28 15:56:03

回答

0

您可以撥打

Camera.getCameraInfo (int cameraId, Camera.CameraInfo cameraInfo). 

您可以確定攝像機的數量與

Camera.getNumberOfCameras(); 

的Camera.CameraInfo.facing領域要麼是CAMERA_FACING_BACK或CAMERA_FACING_FRONT。

+0

你不明白我的問題。我不需要確定攝像機的數量。我需要知道前置攝像頭放在設備上(頂部或側面)是否存在。 – Dmitriy 2012-01-08 10:43:26

+0

我給了存在的唯一相機位置信息的API。 – nmjohn 2012-01-08 15:32:12

2

以上API級別9

/** 
    * @return true : Front facing camera is available. false : Front facing 
    *   camera is not available. 
    */ 
    private boolean isFrontCameraAvailable() { 

     int cameraCount = 0; 
     boolean isFrontCameraAvailable = false; 
     cameraCount = Camera.getNumberOfCameras(); 

     while (cameraCount > 0) { 
     CameraInfo cameraInfo = new CameraInfo(); 
     cameraCount--; 
     Camera.getCameraInfo(cameraCount, cameraInfo); 


     if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { 
     isFrontCameraAvailable = true; 
     break; 
     } 

     } 

     return isFrontCameraAvailable; 
    } 
0

我還沒有找到此信息的API。

我覺得你最好的選擇是一種啓發式的方法來看看Build信息,並讓你知道 https://developer.android.com/reference/android/os/Build.html

位置映射如果設備/品牌匹配的三星Galaxy Tab則認爲它是最佳。

如果它們與華碩變壓器匹配,則認爲它在左側。

如果您發現設備/品牌您不知道記錄它,並且如果您有足夠的人使用該設備研究相機更新您的代碼。

相關問題