如何在Android应用中实现兼容性

时间:2018-07-06 03:54:53

标签: android android-permissions android-camera2

我是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"
}   
}

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
}