为不同的运行时设置Android代码

时间:2010-10-18 12:59:29

标签: java android

我正在开发一款应该在Android 1.5及更高版本的设备上运行的Android应用程序。我使用RawContacts.CONTENT_URI枚举在我的应用程序子类中注册ContentObserver。现在,RawContacts在Eclair中引入并在运行时小于2.0的Android设备上运行此代码,给出了java.lang.VerifyError。对于旧设备,我必须使用Contacts.CONTENT_URI

所以为了解决这个问题,我在代码中添加了以下内容:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR){
  uri = android.provider.ContactsContract.RawContacts.CONTENT_URI;
}
else{
  uri = android.provider.Contacts.CONTENT_URI;
}

我还在收到java.lang.VerifiyErrors。

如何为不同的运行时设置代码?

1 个答案:

答案 0 :(得分:1)

我认为您需要使用反射来获取所需的枚举

http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

由于字节码对2.0之前的设备无效,因为它命名了一个不存在的类。