它没有从 GCM 服务器获取注册 ID,应用程序没有给出任何错误,这是我的 logcat。
07-13 16:43:39.920: I/** pushAndroidActivity **(5310): inside oncreate()
07-13 16:43:39.920: I/** pushAndroidActivity **(5310): started registration
07-13 16:43:39.920: D/GCMRegistrar(5310): resetting backoff for com.example.registration_id
07-13 16:43:39.920: V/GCMRegistrar(5310): Registering app com.example.registration_id of senders 803641917196
07-13 16:43:42.735: V/GCMBroadcastReceiver(5310): onReceive: com.google.android.c2dm.intent.REGISTRATION
07-13 16:43:42.735: V/GCMBroadcastReceiver(5310): GCM IntentService class: com.example.registration_id.GCMIntentService
07-13 16:43:42.735: V/GCMBaseIntentService(5310): Acquiring wakelock
这是主要的活动。我使用现有的 gcm.jar 文件来使用 GCMRegistrar 类方法。
package com.example.registration_id;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.app.Activity;
import com.google.android.gcm.GCMRegistrar;
public class MainActivity extends Activity {
private String TAG = "** pushAndroidActivity **";
EditText edittext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "inside oncreate() ");
//check if registered,if not get registration id from GCM server
if(GCMRegistrar.getRegistrationId(this).equals(""))
{
Log.i(TAG, "started registration ");
GCMRegistrar.register(this, "803641917206");
}
else
{
final String regId = GCMRegistrar.getRegistrationId(this);
Log.i(TAG, "registration id ===== "+regId);
edittext=(EditText)findViewById(R.id.msg);
edittext.setText(regId);
}
}
}
这是服务等级-
package com.example.registration_id;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.android.gcm.GCMBaseIntentService;
public class GCMIntentService extends GCMBaseIntentService {
private static final String TAG = "===GCMIntentService===";
//default constructor
protected GCMIntentService(String senderId) {
super(senderId);
// TODO Auto-generated constructor stub
}
@Override
protected void onError(Context arg0, String arg1) {
// TODO Auto-generated method stub
Log.i(TAG, "error ");
}
@Override
protected void onMessage(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
}
@Override
protected void onRegistered(Context arg0, String registrationId) {
// TODO Auto-generated method stub
Log.i(TAG, "Device registered: regId = " + registrationId);
}
@Override
protected void onUnregistered(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
}