Android Studio GCM 注册 ID 显示为空
Android Studio GCM Registration id shows null
创建项目并从 https://developers.google.com/cloud-messaging/android/start 获取服务器 api 密钥和发件人 ID。并使用以下代码生成注册 ID
GoogleCloudMessaging gcm;
String SENDER_ID = "mysenderid";
String Reg_id;
Context context;
EditText firstNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Reg_id=registerGCM();
}
public String registerGCM()
{
String regid=null;
try {
firstNumber = (EditText)findViewById(R.id.regisid_1);
context = getApplicationContext();
gcm = GoogleCloudMessaging.getInstance(context);
regid = gcm.register(SENDER_ID);
firstNumber.setText(regid);
}
catch(Exception ae)
{
}
return regid;
}
但是执行代码后regid显示为null。
如果 gcm id 为 null 尝试启动后台任务并获取 id.check 下面的代码
private void registerInBackground() {
new AsyncTask() {
@Override
protected String doInBackground(Object[] params) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
regid = gcm.register(SENDER_ID);
msg = "Device registered, registration ID=" + regid;
sendRegistrationIdToBackend();
// Persist the regID - no need to register again.
storeRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(Object msg) {
// mDisplay.append(msg + "\n");
}
}.execute(null, null, null);
}
创建项目并从 https://developers.google.com/cloud-messaging/android/start 获取服务器 api 密钥和发件人 ID。并使用以下代码生成注册 ID
GoogleCloudMessaging gcm;
String SENDER_ID = "mysenderid";
String Reg_id;
Context context;
EditText firstNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Reg_id=registerGCM();
}
public String registerGCM()
{
String regid=null;
try {
firstNumber = (EditText)findViewById(R.id.regisid_1);
context = getApplicationContext();
gcm = GoogleCloudMessaging.getInstance(context);
regid = gcm.register(SENDER_ID);
firstNumber.setText(regid);
}
catch(Exception ae)
{
}
return regid;
}
但是执行代码后regid显示为null。
如果 gcm id 为 null 尝试启动后台任务并获取 id.check 下面的代码
private void registerInBackground() {
new AsyncTask() {
@Override
protected String doInBackground(Object[] params) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
regid = gcm.register(SENDER_ID);
msg = "Device registered, registration ID=" + regid;
sendRegistrationIdToBackend();
// Persist the regID - no need to register again.
storeRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(Object msg) {
// mDisplay.append(msg + "\n");
}
}.execute(null, null, null);
}