2013-06-20 132 views
0

我可以使用前置攝像頭的安卓薑餅2.3及以上,此代碼拍照拍攝照片代碼爲2.2和2.1版本。爲此,我將來自2.3源的Camera類放入我的項目中,更改並運行。但是,我得到一個錯誤使用在Android 2.1的前置攝像頭和2.2

Can't find getNumberOfCameras native method. 

我讀了這個網站此主題的所有答案。我也試過這個代碼,但它也提供了一個錯誤,這是不是一個普遍的方式,因爲它僅適用於某些設備:

Camera.Parameters parameters = mCamera.getParameters(); 
parameters.set("camera-id", 2); 
parameters.setPreviewSize(640, 480); 
mCamera.setParameters(parameters); 

我的問題是:如何使與舊版本兼容。如何在我的項目中包含2.3類的Camera類所用的所有方法以及它需要的所有本地方法。

回答

1

爲此,我將來自2.3源的Camera類放入我的項目中,對其進行了更改並運行。

這不適用於任何框架類別,更不用說Camera

但我得到一個錯誤Can't find getNumberOfCameras native method.

這是因爲Android將會忽略你的android.hardware.Camera類,並使用它自己的。您不會控制運行時類路徑,Android的系統類將始終優先於具有剛好位於您的APK中的相同名稱和包的任何類。

你可以將你的副本重構成其他包,但是你會崩潰在所有的native方法。

我的問題是:如何使與舊版本

你不能兼容。 Android 2.3之前的Android中沒有前置攝像頭支持。

某些設備製造商可能在其設備上安裝了前置攝像頭,並且這些製造商的某些子集發佈了開發人員如何使用它們的說明,例如上面顯示的camera-id代碼。歡迎您研究所有這些說明,使用Build類來檢測這些特定設備,然後在可用的地方應用這些說明。

如何在我的項目中包含Camera類所使用的所有方法以及它需要的所有本地方法。

你不行。 Android 2.3之前的Android操作系統不會奇蹟般地萌芽前端攝像頭支持,無論您將其放在項目中。

相關問題