互联网开启时未收到Android推送通知

Sasikala Muthukrishnan

1)我已经实现了推送通知。当设备连接到Internet时,它可以正常工作。(例如)从服务器端接收通知

2)设备未连接到Internet时。如果服务器发送推送消息。然后将设备连接到Internet ..它没有收到推送消息..这就是问题所在

3)当设备连接到互联网时,它喜欢实现类似Whats App ..这样的推送消息。它应该接收到推送消息。

public class GcmIntentService extends GcmListenerService {



    @Override
    public void onMessageReceived(String from, Bundle data) {
        String message = data.getString("title");
        String post_id=data.getString("id");
        boolean pushactive= SharedPreference.getInstance().getBool(this,"pushactive");
        if(pushactive)
        generateNotification(message,post_id);

    }

    @Override
    public void onCreate() {
        super.onCreate();
        System.out.println("inside GcmListenerService");
    }

    public void generateNotification(String message,String post_id)
    {
        Random random = new Random();
        int m = random.nextInt(9999 - 1000) + 1000;
        Intent intent = new Intent(this, NewsDetailActivity.class);
        intent.putExtra("isPush", true);
        intent.putExtra("post_id",post_id);
        intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentText(message)
                .setContentTitle("EGToday")
                .setAutoCancel(true)
                .setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));

        notificationManager.notify(m, mBuilder.build());
    }
}

如何做到这一点?

这是我的意图服务课程。

这是我的表现

   <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.egt">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <permission android:name="com.egt.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="com.egt.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />





    <application
        android:name="com.egt.Constants.NetworkCall"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">


        <activity android:name=".View.SplashPage">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:windowSoftInputMode="stateHidden|adjustPan"
            android:name=".View.MainActivity"
            android:screenOrientation="portrait">

        </activity>
        <activity

            android:name=".View.NewsDetailActivity"
            android:screenOrientation="portrait">

        </activity>
        <activity

            android:name=".View.SearchActivity"
            android:screenOrientation="portrait">

        </activity>

        <receiver
            android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="com.egt" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.egt.PushNotification.GcmIntentService"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            </intent-filter>
        </service>

        <service android:name="com.egt.PushNotification.GcmRegistration"
            android:exported="false" />


    </application>

</manifest>
加内什·古吉(Ganesh Gudghe)

在您的服务器端设置delayWhileIdle(true)

如果设备已连接但处于空闲状态,则除非delay_while_idle标志设置为true,否则消息仍将立即传递。否则,它将被存储在GCM服务器中,直到设备唤醒。这就是crash_key标志起作用的地方:如果已经存储了一条具有相同折叠键(和注册ID)的消息,并等待发送,则旧消息将被丢弃,新消息将取代它(即,旧邮件将被新邮件折叠)。

前任。

Message message = new Message.Builder().delayWhileIdle(true).addData(MESSAGE_KEY,text).build();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以在lan中使用android推送通知吗?没有互联网

来自分类Dev

在Android上未收到推送通知

来自分类Dev

在Android中未收到解析推送通知

来自分类Dev

检查互联网是否开启

来自分类Dev

当互联网连接或断开时得到通知

来自分类Dev

可访问互联网时通知的Bash脚本

来自分类Dev

Laravel Expo推送通知-在Android上未收到通知

来自分类Dev

移动数据开启时通过wifi发送数据(无互联网)

来自分类Dev

有时未收到推送通知 firebase

来自分类Dev

当存在互联网连接并且我在Android Studio中单击“检查更新”时,我会收到“连接失败”

来自分类Dev

Android模拟器未收到推送通知

来自分类Dev

Android模拟器未收到推送通知

来自分类Dev

订阅后仍未收到Android Parse推送通知

来自分类Dev

互联网连接关闭时,Android应用崩溃

来自分类Dev

按下按钮时android检查互联网连接

来自分类Dev

开启互联网后重新加载Webview

来自分类Dev

Android设备未收到推送

来自分类Dev

互联网连接打开时打开Android应用,否则不显示互联网连接消息

来自分类Dev

未收到GCM推送通知(全部结束)

来自分类Dev

在睡眠模式下未收到推送通知

来自分类Dev

未收到GCM推送通知(全部结束)

来自分类Dev

设备未收到iOS推送通知

来自分类Dev

未收到Phonegap iOS推送通知

来自分类Dev

桌面Google Chrome推送通知未收到

来自分类Dev

未收到离子云推送GCM通知

来自分类Dev

在Testflight中未收到推送通知

来自分类Dev

收到推送通知时打开Android应用

来自分类Dev

收到推送通知时打开Android应用

来自分类Dev

使用 DHCP 时互联网“滞后”