我正在开发一个应用程序,因为我必须将GCM的注册ID从应用程序发送到我自己的服务器我写了一些不起作用的代码请告诉我我在哪里犯了错误
myAsynTask类
上下文上下文;
public static final String EXTRA_MESSAGE = "message";
public static final String PROPERTY_REG_ID = "registration_id";
String SENDER_ID = "538459826415";
static final String TAG = "GCMDemo";
GoogleCloudMessaging gcm;
String msg;
String regid;
@Override
protected Void doInBackground(DetailsDTO... params) {
// TODO Auto-generated method stub
httpClient = new DefaultHttpClient();
httpPost = new HttpPost(TrafficConstants.USER_REG_URL);
try{
gcm = GoogleCloudMessaging.getInstance(context);
regid = gcm.register(SENDER_ID);
msg = "Dvice registered, registration ID=" + regid;
Log.d("111", msg);
}
catch(IOException e){
e.printStackTrace();
}
try{
arrayList = new ArrayList<NameValuePair>(=1);
arrayList.add(new BasicNameValuePair("rigid", regid));
httpPost.setEntity(new UrlEncodedFormEntity(arrayList));
HttpResponse response = httpClient.execute(httpPost);
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
logcat的
02-20 15:26:50.915: W/System.err(5400): java.io.IOException: INVALID_SENDER
02-20 15:26:50.925: W/System.err(5400): at
com.google.android.gms.gcm.GoogleCloudMessaging.register(Unknown Source)
02-20 15:26:50.925: W/System.err(5400): at
com.technowellServices.locationfind.async.UserDetailsAsync.doInBackground
(UserDetailsAsync.j ava:82)
02-20 15:26:50.925: W/System.err(5400): at
com.technowellServices.locationfind.async.UserDetailsAsync.doInBackground
(UserDetailsAsync.j ava:1)
02-20 15:26:50.925: W/System.err(5400): at
android.os.AsyncTask$2.call(AsyncTask.java:287)
02-20 15:26:50.925: W/System.err(5400): at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-20 15:26:50.935: W/System.err(5400): at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-20 15:26:50.935: W/System.err(5400): at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-20 15:26:50.935: W/System.err(5400): at java.lang.Thread.run(Thread.java:856)
答案 0 :(得分:4)
您的发件人似乎认为它不正确
提供项目名称,然后单击“创建”。
创建项目后,会出现一个显示项目ID和项目的页面 号。
例如,项目编号:670330094152。
您应该在 Google API控制台的项目页面中激活GCM服务和
服务器应用程序密钥
Android应用程序密钥
也生成了选项。
然后在 Android应用程序密钥中,您应该将哈希码和您的应用程序包名称用分号分隔。
AA:98:0C:AA:03:BD:E7:DA:AA:4A:FA:AF:73:3F:72:E7:D4:11:4S:B1;com.example.myapp
项目编号是发件人ID。
检查一下,然后重试。