最近使用ceamera2开发相机,但因为他是支持的最小API是21,那么我想使用ceamera2的话我的APP不能在小于5.0的Android上运行了吗,答案当然是否定的,我们可以降低自己的minSdkVersion的版本,从而让用户在使用的时候还能使用除了有版本要求的其他功能。
我用了http://blog.csdn.net/qq_27512671/article/details/51026794 的例子来进行了这件事。
降低minSdkVersion的版本首先就是要在app/build.gradle里面做一下改动了,原来的minSdkVersion是21,我改成了18,也就时对应Android 4.3
defaultConfig {
applicationId "com.iezview.threemodel"
minSdkVersion 18
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
改完之后代码就报红了,它提示我Call requires API level 21 (current min is 18),也就是说他需要minSdkVersion是21而我现在的是18,那么怎么办呢,在类文件的开头加上这一句。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class Camera2Fragment extends Fragment {
。。。
}
然后对于低于LOLLIPOP版本的怎么办呢,可以在调用它的地方给用户个提示:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
Toast.makeText(this, "Android系统版本不不足,无法使用此功能", Toast.LENGTH_SHORT).show();
TextView view = new TextView(this);
view.setText("Android系统版本不对");
view.setGravity(Gravity.CENTER);
view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
setContentView(view);
return;
}
setContentView(R.layout.activity_main);
}
}
完成,比较简单。