要让C2DM正常工作,设备显然必须处于API8级。然而,这真的需要在该级别编译应用程序吗?使用C2DM的代码都不需要8级的API,那么有没有可能有一个更低级别的应用程序,也许是4级或6级,并让它尝试进行C2DM注册?也许在较低API级别的设备上注册失败,希望可以检测到这一点,以便可以使用替代机制。但是,对于API级别8或更高级别的设备,注册不应该成功吗?我在这里尝试做的是在仍然在4级编译的情况下利用C2DM,这样我的应用程序就可以接触到最多的用户。理想情况下,这是可能的,我可以检测到设备何时无法执行C2DM,并做出相应的反应。
发布于 2010-10-31 07:23:38
您可以使用android.os.Build.VERSION.SDK来确定设备支持的最高级别的应用程序接口,并分别处理API8和<8,而不需要用户处于某个API级别才能安装应用程序。
发布于 2011-12-17 01:35:22
对于现在遇到这种情况的任何人- android.os.Build.VERSION.SDK现在已被弃用,但您可以使用android.os.Build.VERSION.SDK_INT,如下所示:
int current_sdk = android.os.Build.VERSION.SDK_INT;
if (current_sdk >= android.os.Build.VERSION_CODES.FROYO) {
registerForC2DM(activity);
}下面是您可以使用的所有版本代码的参考:http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
https://stackoverflow.com/questions/4059571
复制相似问题