取消注册设备Aerogear

时间:2015-07-12 01:22:29

标签: android push-notification google-cloud-messaging aerogear

我正在使用Aerogear和OpenShift实现和Android应用程序发送和接收推送通知。 我有一个问题要取消注册设备,如果我打开应用程序,我注册它工作的设备,我可以发送通知和所有工作好,如果我尝试取消注册设备也运作良好,我的问题是当我关闭应用程序和我的设备已注册,如果我重新启动应用程序,我想取消注册设备,我收到此错误:

"服务器返回错误代码404"

07-11 21:07:32.436 21158-21245 /? D / GCM:GcmService启动Intent {act = com.google.android.c2dm.intent.UNREGISTER pkg = com.google.android.gms cmp = com.google.android.gms / .gcm.GcmService(has extras)} com .google.android.c2dm.intent.UNREGISTER 07-11 21:07:32.606 20520-20520 /? D / wpa_supplicant:RX ctrl_iface - hexdump(len = 11):53 49 47 4e 41 4c 5f 50 4f 4c 4c 07-11 21:07:32.606 20520-20520 /? D / wpa_supplicant:wlan0:控制接口命令' SIGNAL_POLL' 07-11 21:07:32.606 20520-20520 /? D / wpa_supplicant:nl80211:缺少调查数据!

这是我的实际代码

    btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
RegistrarManager.config(PUSH_REGISTER_NAME, AeroGearGCMPushConfiguration.class)
.setPushServerURI(new URI(UNIFIED_PUSH_URL))
.setSenderIds(GCM_SENDER_ID)
.setVariantID(VARIANT_ID)
.setSecret(SECRET)
.setAlias(ALIAS)
.setDeviceToken(ALIAS)
.asRegistrar();
PushRegistrar registrar = RegistrarManager.getRegistrar(PUSH_REGISTER_NAME);
registrar.register(getActivity().getApplicationContext(), new Callback<Void>() {
@Override
public void onSuccess(Void ignore) {
Toast.makeText(getActivity(), "SUCCESS", Toast.LENGTH_SHORT).show();
}   
@Override
public void onFailure(Exception exception) {
Toast.makeText(getActivity(), exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
} catch (Exception e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
btnUnregister = (Button)mInflatedView.findViewById(R.id.btnUnregister);
btnUnregister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
RegistrarManager.config(PUSH_REGISTER_NAME, AeroGearGCMPushConfiguration.class)
.setPushServerURI(new URI(UNIFIED_PUSH_URL))
.setSenderIds(GCM_SENDER_ID)
.setVariantID(VARIANT_ID)
.setSecret(SECRET)
.setAlias(ALIAS)
.setDeviceToken(ALIAS)
.asRegistrar();
PushRegistrar registrar = RegistrarManager.getRegistrar(PUSH_REGISTER_NAME);
registrar.unregister(getActivity().getApplicationContext(), new Callback<Void>() {
@Override
public void onSuccess(Void ignore) {
Toast.makeText(getActivity(), "SUCCESS", Toast.LENGTH_SHORT).show();
}

@Override
public void onFailure(Exception exception) {
Toast.makeText(getActivity(), exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}catch(Exception e){
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});

有什么建议可以解决这个问题吗?

0 个答案:

没有答案