Lui*_*rit 6 compiler-construction conditional android exif
Android有任何类型的条件编译吗?
我不得不为Android 3(API 11)制作我的项目,因为ExifInterface在Android 2.3(API 10)中几乎没有任何有用的属性,尽管它出现在API 5(!! ??)中.我不想将我的应用程序限制为ICS用户.
谢谢!
您可以动态检查设备的当前API版本,并根据具体情况执行不同的操作:
if(Build.VERSION.SDK_INT < 14) {
// Crappy stuff for old devices
}
else {
// Do awesome stuff on ICS
}
Run Code Online (Sandbox Code Playgroud)
但要小心,如果您需要实例化所有API不可用的类,那么您应该在runnable或单独的包装类中执行它,例如:
if(Build.VERSION.SDK_INT < 14) {
// Crappy stuff for old devices
}
else {
// Do awesome stuff on ICS
new Runnable() {
new AmazingClassAvailableOnICS();
(...)
}.run();
}
Run Code Online (Sandbox Code Playgroud)
import android.annotation.TargetApi;
然后使用注释:
@TargetApi(11)
public void methodUsesAPI11()
{
...
Run Code Online (Sandbox Code Playgroud)
使用这个技巧非常简单:它允许编译包含API级别11调用(类,方法等)的一些代码,并且仍然android:minSdkVersion="8"
在清单中设置.没有别的,没有别的.
剩下的由你决定.在调用methodUsesAPI11()
或处理异常之前,必须检查平台版本,以防止应用程序崩溃并在旧平台上执行其他操作.
归档时间: |
|
查看次数: |
6384 次 |
最近记录: |