zeg*_*nus 7 android backwards-compatibility
我正在开发一个使用的应用程序
android.hardware.Camera.parameters.getSupportedPictureSizes()
这仅适用于SDK版本8,我希望与SDK 4兼容,所以我这样做了:
if(Build.VERSION.SDK_INT> = 8){...}
但是在模拟器上,它会尝试检查对此函数的引用,并且它会失败:
02-02 11:20:10.930:ERROR/dalvikvm(1841):找不到方法android.hardware.Camera $ Parameters.getSupportedPictureSizes,从方法com.test.demo.CameraCustom.takeAPicture中引用
有关如何解决此向后兼容性问题的任何想法?
我试图在surfaceChanged中使用这段代码进行墨迹分配.显然,代码可以在没有调用的情况下直接工作:
try{
windowmanager_defaultdisplay_Rotation = getWindowManager().getDefaultDisplay().getClass().getMethod("getRotation");
Log.v(MainMenu.TAG, "getRotation exist");
}catch(Exception e){
Log.v(MainMenu.TAG, "getRotation dont exist");
}
try{
windowmanager_defaultdisplay_Rotation.invoke(null, null);
Log.v(MainMenu.TAG, "getRotation invoking ok, rotation ");
}catch(Exception e){
Log.v(MainMenu.TAG, "exception invoking getRotation "+e.toString());
}
Run Code Online (Sandbox Code Playgroud)
我得到"getRotation exists"但是"异常调用getRotation java.lang.NullPointerException.
任何的想法?
您无法getSupportedPictureSizes()在API级别7及之前加载包含调用的代码.因此,您需要Build 在加载包含依赖于版本的语句的代码之前做出决定.
您的选择包括:
getSupportedPictureSizes()根据API级别禁用菜单选项,按钮或导致所使用活动的任何内容getSupportedPictureSizes()仅在API级别8或更高级别上使用在这个示例项目中可以看到后一种技术的一个例子,我支持API级别9的前向摄像头,但仍然可以在旧版本的Android上运行.
| 归档时间: |
|
| 查看次数: |
3799 次 |
| 最近记录: |