Android 在4.0.4之前的设备上实施GCM

Android 在4.0.4之前的设备上实施GCM,android,Android,我的应用程序的最小SDK是API 9,我正在尝试为它实现GCM。根据我在文档中读到的内容,我正在使用以下代码,这是正确的方法吗?在运行4.0.4或更高版本且安装了Google Play服务的设备上,有时返回false。在这些情况下,它通常返回ConnectionResult.SERVICE\u VERSION\u UPDATE\u所需的错误代码。有什么想法吗 private boolean checkGcmStatus() { int resultCode = GooglePlaySer

我的应用程序的最小SDK是API 9,我正在尝试为它实现GCM。根据我在文档中读到的内容,我正在使用以下代码,这是正确的方法吗?在运行4.0.4或更高版本且安装了Google Play服务的设备上,有时返回false。在这些情况下,它通常返回ConnectionResult.SERVICE\u VERSION\u UPDATE\u所需的错误代码。有什么想法吗

private boolean checkGcmStatus()
{
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if (resultCode != ConnectionResult.SUCCESS)
    {
        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode))
        {
            GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show();
        }
        else
        {
            Log.i("GCM", "Device can not register for GCM.");
        }

        return false;
    }

    return true;
}

这与安卓版本无关,而是谷歌Play服务的版本。这些设备有什么版本的Google Play服务?看起来其中一个有3.1.59,运行Android 4.1.2。我想我找到了问题所在,我在清单文件中指定了com.google.android.gms.version元数据。我应该删除这个吗?删除元数据元素会使你的应用程序立即崩溃,因为这是Google Play服务所要求的。3.1.59是Google Play服务的一个非常旧的版本,因为4.2目前正在向所有Android 2.3+设备推出。我希望我的应用程序能在所有设备上运行,即使是那些没有设置Google帐户的设备。既然这些设备没有得到这些更新,我的选择是什么?