Android推送通知:CloudPush

时间:2016-06-05 19:13:10

标签: android push-notification appcelerator titanium-mobile

我很难找到这个错误的解决方案:

GooglePlayServicesUtil:找不到Google Play服务资源。检查项目配置以确保包含资源

我正在使用CloudPush模块,奇怪的是直到昨天一切都运行良好,我正在接收推送消息。我尝试接收超过100个推送消息.....但突然它停止工作,甚至我没有得到任何设备令牌。

var CloudPush = require('ti.cloudpush');

        if (CloudPush.isGooglePlayServicesAvailable()) {
            CloudPush.retrieveDeviceToken({
                success : tokenSuccess,
                error : tokenError
            });

            // Process incoming push notifications
            CloudPush.addEventListener('callback', pushRecieve);
        } else {
            alert("Please enable Google Play Services to register for notifications.");
        }

这是我一直在使用的代码,但天知道为什么它突然停止工作。我唯一能记得的就是将Titanium SDK更新到5.3.0.GA,Studio更新到4.6.0,所以最新版本都包括CLI。

但是我一直在使用5.2.2,任何人都可以帮我这个或者这会是一种罕见的错误...... ????

1 个答案:

答案 0 :(得分:1)

最后,我找到了解决方案(但不知道实际原因是什么)。

我实现了这段代码:

var CloudPush = require('ti.cloudpush');

Ti.API.info('\n*Play Service = ' + CloudPush.isGooglePlayServicesAvailable());
Ti.API.info('*SERVICE_DISABLED = ' + CloudPush.SERVICE_DISABLED);
Ti.API.info('*SERVICE_INVALID = ' + CloudPush.SERVICE_INVALID);
Ti.API.info('*SERVICE_MISSING = ' + CloudPush.SERVICE_MISSING);
Ti.API.info('*SERVICE_VERSION_UPDATE_REQUIRED = ' + CloudPush.SERVICE_VERSION_UPDATE_REQUIRED);
Ti.API.info('*SUCCESS = ' + CloudPush.SUCCESS);


if (CloudPush.isGooglePlayServicesAvailable() == 0) {
    CloudPush.retrieveDeviceToken({
        success : function (e) {
           Ti.API.info('** deviceToken == ' + e.deviceToken);
        },
        error : tokenError
    });

    CloudPush.addEventListener('callback', pushRecieve);

} else {
    CloudPush.clearStatus();
    CloudPush.retrieveDeviceToken({
        success : function (e) {
           Ti.API.info('** deviceToken == ' + e.deviceToken);
        },
        error : tokenError
    });
}

因此,解决方案是调用此方法CloudPush.clearStatus()并再次获取令牌。

但是在控制台上仍然存在错误,尽管我成功收到了令牌。

这是控制台输出:

[INFO] :  GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

[INFO] :  *Play Service = 0
[INFO] :  *SERVICE_DISABLED = 3
[INFO] :  *SERVICE_INVALID = 9
[INFO] :  *SERVICE_MISSING = 1
[INFO] :  *SERVICE_VERSION_UPDATE_REQUIRED = 2
[INFO] :  *SUCCESS = 0

[INFO] :  GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
[INFO] :   ** deviceToken == AP.......qK

在我之前的代码中,我犯了一个错误,我认为CloudPush.isGooglePlayServicesAvailable()将返回true表示成功,但它实际上返回一个数字(上面打印),然后我明白了它是否正确。

但是在我调用CloudPush.clearStatus()之前它没有用。

希望它会帮助某人:)