2

我製作了一個簡單的閃光燈應用程序,用於切換手電筒。一切工作正常,但我有幾個問題與API的權限高於23.只有API 23以下的攝像頭權限

在API 23中添加了一種新的方法來處理手電筒模式。更確切地說CameraManager.setTorchMode(String cameraId, boolean enabled)。 這種新方法不再需要打開相機,只是爲了處理手電筒操作。

我的問題是,API 23以下,這種方法不存在,因此我需要訪問相機,這迫使我在清單中使用相機權限:<uses-permission android:name="android.permission.CAMERA"/>

但我想避免在高於23的API上請求攝像頭權限,因爲這不會影響應用程序的功能。

有誰知道我只能在23以下的API上請求相機權限嗎?

+1

[基於API級別的權限請求(HTTP的可能重複:// stackoverflow.com/questions/38157814/request-permissions-based-on-api-level) – GSerg

+0

這是不可能的。除非您創建僅適用於API 23+的新apk。 – TOP

+0

@TOP,我正在考慮這個,但這可能太多隻是爲了權限檢查。我會認爲這只是最後的決心。 –

回答

3

我找到了解決方案。看來uses-permission允許一些定製,我發現android:maxSdkVersion屬性做我想要的。

<uses-permission android:name="android.permission.CAMERA" android:maxSdkVersion="23"/>

我希望這可以幫助其他人在類似的情況。

更多內容,可在官方文檔中找到:uses-permission

+0

不應該是'android:maxSdkVersion =「22」'? 從23開始,我們有'CameraManager.setTorchMode' API。 –

0

清單文件試試這個權限:
<uses-feature android:name="android.hardware.camera2"/> <uses-feature android:name="android.hardware.camera" />

+0

這是如何解決我的權限問題? –

相關問題