2012-01-08 42 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则认为它是最佳。

如果它们与华硕变压器匹配,则认为它在左侧。

如果您发现设备/品牌您不知道记录它,并且如果您有足够的人使用该设备研究相机更新您的代码。

相关问题