在Android上使用GCM推送通知

前端之家收集整理的这篇文章主要介绍了在Android上使用GCM推送通知前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的 Android应用程序上实现推送通知.所以没有比Googles Developers页面更好的起点了.

我想在这里遵循这个教程:GCM Demo App.教程建议使用通过SDK Manager提供的示例代码.执行此操作并尝试发送推送通知后,当应用程序运行时,我会在屏幕上看到正在写入新推送已到达.

但是,当应用程序在后台或未运行时,我没有得到推送通知.如果我打开应用程序,屏幕上会再次显示消息.但我从来没有通过弹出和声音通知的形式.

我手动必须在android中执行此操作吗?我认为它与iOS类似,平台负责向您显示通知.

我有什么想法可以实现它吗?

解决方法

尝试重新注册并重新注册您的设备.
在DemoActivity.java中
final String regId = GCMRegistrar.getRegistrationId(this);
        GCMRegistrar.unregister(this);

然后,删除GCMRegistrar.unregister(this);在第二次发射.

更新

您的申请中的通知

创建类

public class DemoApplication extends Application {

    private class NotifyReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context,Intent intent) {
              Toast.makeText(context,"RECEIVE MESSAGE",Toast.LENGTH_SHORT).show();
        }
    }

    private NotifyReceiver notifyReceiver = new NotifyReceiver();

    @Override
    public void onCreate() {
        registerReceiver(notifyReceiver,new IntentFilter("GCM_MESSAGE"));
        super.onCreate();
    }

    @Override
    public void onTerminate() {
        unregisterReceiver(notifyReceiver);
        super.onTerminate();
    }
}

然后把

<application
           android:name=".DemoApplication"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

在AndroidManifest.xml中发送广播

@Override
    protected void onMessage(Context context,Intent intent) {
        Log.i(TAG,"Received message");
        String message = getString(R.string.gcm_message);
        displayMessage(context,message);
      context.sendBroadcast(new Intent("GCM_MESSAGE"));
        // notifies user
        generateNotification(context,message);
    }

作为替代案例,您可以在Manifest,Activity或ForeGround Service中注册broadcastReceiver

猜你在找的Android相关文章