我和我的应用程序有同样的问题。 错误的第一件事,是我的GCMIntentService。它必须在你的软件包的根基上。
我将在这里包含一个我的GCMIntentService的简短片段。请记住,您将收到您registrationID上GCMIntentService注册方法
public class GCMIntentService extends GCMBaseIntentService {
private static final String TAG = "GCMIntentService";
public GCMIntentService() {
super(CloudMessagingUtility.SENDER_ID);
}
/**
* Method called on device registered
**/
@Override
protected void onRegistered(Context context, String registrationId) {
Log.i(TAG, "Device registered: regId = " + registrationId);
//这里调用你的方法到registrationId发送到Web服务器 CloudMessagingUtility.register(背景下,registrationId); }
/**
* Method called on device un registred
* */
@Override
protected void onUnregistered(Context context, String registrationId) {
Log.i(TAG, "Device will unregister from Google Cloud Messaging");
//unregister the device from your own webserver too
CloudMessagingUtility.unregister(context, registrationId);
}
/**
* Method called on Receiving a new message
* */
@Override
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message from GCM:");
String message = "";//TODO handle here the messages!
}
/**
* Method called on receiving a deleted message
* */
@Override
protected void onDeletedMessages(Context context, int total) {
Log.i(TAG, "Received deleted messages notification");
String message = getString(R.string.gcm_deleted, total);
displayMessage(context, message);
}
/**
* Method called on Error
* */
@Override
public void onError(Context context, String errorId) {
Log.e(TAG, "Received error: " + errorId);
}
}
你必须做出正确的配置在Android
e <service android:name=".GCMIntentService" /><receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name=" your package here" />
</intent-filter>
</receiver>
感谢朱塞佩,我已经使用了相同的链接 但我的申请没有得到onRegistered()方法 – techieWings 2012-07-05 10:15:13
您是否实现了BrodcastReceiver? – Giuseppe 2012-07-06 16:05:03