我準備好了一個應用程序,需要有後置攝像頭。顯然,它在清單中具有<uses-permission android:name="android.permission.CAMERA" />
權限,但這並不排除諸如僅具有前置攝像頭的Nexus 7平板電腦等設備。如何排除沒有後置攝像頭的設備?
缺少通過手動排除設備我該怎麼做?
我準備好了一個應用程序,需要有後置攝像頭。顯然,它在清單中具有<uses-permission android:name="android.permission.CAMERA" />
權限,但這並不排除諸如僅具有前置攝像頭的Nexus 7平板電腦等設備。如何排除沒有後置攝像頭的設備?
缺少通過手動排除設備我該怎麼做?
我只知道程序上的答案。 作爲this question表示,你可以使用
PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
這將返回false,如果設備沒有後置攝像
旗(上了Nexus 7,以假)
FEATURE_CAMERA_FRONT
仍然會相反。因此,您可以在啓動您的第一個活動時使用此測試,並在您的應用說明中加上一個大警告。
但是,我不知道如何使用清單來排除此條件下的設備,而不是手動排除設備。
編輯:鏈接爲相關點出這個使用特徵標誌清單另一個問題:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
根據文檔:
該應用程序使用設備的攝像頭。如果設備支持多個攝像頭,則應用程序會使用背離屏幕的攝像頭。
因此,對於僅面向前方的設備而言,它有點模糊。
您可以使用inandroid中給出的uses-feature標籤。你必須在清單文件中聲明這個標籤。它會根據給定的條件自動過濾設備。只要使用這種使用特徵標籤清單中是這樣的:
<uses-feature android:name="android.hardware.camera" android:required="true" />
更多細節遵循以下鏈接: - Android Uses Premission
即使你不使用Android:要求=「真」,在谷歌播放系統假定這是一個必需的屬性和過濾器。 –