我是Android开发者初学者。我已经建立了使用相机闪光灯的简单android应用程序。我已经用不到23的API构建了这个应用程序,并且可以正常工作,但是后来我将相机库更改为camera2并重新构建了应用程序。但是我的问题-我的应用仅兼容约5k的设备。旧版本可兼容约13K设备。我认为我对许可或功能感到困惑。请提供建议,这是什么问题。
请在下面查看我的清单文件:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-permission android:name="android.hardware.camera.flash"/>
<application...>
然后build.gradle
android {
compileSdkVersion 26
buildToolsVersion '25.0.3'
defaultConfig {
applicationId "com..."
minSdkVersion 23
targetSdkVersion 26
versionCode 24
versionName "2.3"
}
}
答案 0 :(得分:0)
这仅仅是因为目标api越高,设备的兼容性越差。
如果只是手电筒,那么我会继续使用旧版本,至少那是我对手电筒应用所做的。
请记住要获得sdk 23及更高版本的许可。
答案 1 :(得分:0)
minsdkversion必须较低。设置为21左右以获得更多设备兼容。如果您使用21,则支持上述棒棒糖设备。
答案 2 :(得分:0)
您可以同时使用两个库,也可以通过比较版本来调用该方法。为您的实现提供帮助的方式。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
} else{
// do something for phones running an SDK before lollipop
}