背景:
Android从一开始发布到现在已经迭代了很多的版本了,其中一些API也经历了多次修改,比如开启相机之类的,在Android api 9之前相机开启就直接open了,但是Android Api 9之后,支持了多摄像头,为了相机的开启效率,将不推荐在直接使用open来开启相机了,而且在open时传递相机的ID以来区分具体开启哪颗摄像头。
这样在不同的Android版本下,可以就需要使用不同的api了。
适配方案:
不废话直接给出适配方案,以开启相机为例。
1、定义一个相机开启的接口
public interface OpenCameraInterface
{
Camera open();
}
2、实现默认开启相机的接口
final class DefaultOpenCameraInterface implements OpenCameraInterface
{
@Override
public Camera open()
{
return Camera.open();
}
}
3、实现指定版本以上开启相机的接口
@TargetApi(9)
public final class GingerbreadOpenCameraInterface implements OpenCameraInterface
{
@Override
public Camera open()
{
int numCameras = Camera.