当我的应用关闭时,GCM消息不会进入我的应用

时间:2016-07-11 09:49:20

标签: php android json google-cloud-messaging android-5.0-lollipop

我想在我的应用关闭或从缓存中清除时向用户显示我的GCM通知,下面是我的代码仅在应用程序打开但不在后台运行时才起作用:

public function send_notification($registatoin_ids, $message) {
    include_once 'dbconfig.php';
    // Set POST variables
    $url = 'https://android.googleapis.com/gcm/send';
    $fields = array(
        'registration_ids' => $registatoin_ids,
        'data' => $message,
    );

智能手机在我的应用中看不到任何服务。这是一个截图,您可以将我的应用程序与whatsapp等其他应用程序进行比较: enter image description here

以下是我关于GCM的Manifest部分:

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 <!-- ... other permissions -->

<permission
    android:name="my.app.path.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" />

<application
    ...>
     <!-- ... activites... -->

    <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" />
            <category android:name="my.app.path" />
        </intent-filter>
    </receiver>      

    <service
        android:name=".MyGcmListener"
        android:exported="false"
        android:enabled="true" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>

</application>

</manifest>

我想显示whatsApp等通知。

1 个答案:

答案 0 :(得分:0)

如果在发送邮件时将优先级设置为high,您是否尝试过?

设置为High priority,允许GCM服务在可能的情况下唤醒休眠设备,并打开与应用服务器的网络连接。例如,具有即时消息,聊天或语音呼叫警报的应用程序通常需要打开网络连接并确保GCM毫不拖延地将消息传递给设备。仅当消息对时间至关重要并且需要用户立即进行交互时才设置高优先级,并注意将消息设置为高优先级会导致电池消耗比普通优先级消息更多。