完全没有通过Android应用收到GCM消息

用户名

我有一个老问题:我无法通过android应用接收GCM消息。根据服务器日志,它们已成功传递到GCM服务器并被进一步发送,但我的客户端应用似乎未收到它们。

这是清单中与GCM相关的片段:

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

<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />


<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />

<!-- This app has permission to register and receive data message. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


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

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


<receiver
    android:name="com.google.android.gms.gcm.GcmReceiver"
    android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>

        <!-- Receives the actual messages. -->
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <action android:name="com.google.android.c2dm.intent.GCM_RECEIVED_ACTION" />

        <category android:name="my.package" />
    </intent-filter>
</receiver>

<service android:name=".GcmIntentService" />

这是我的服务类GcmIntentService:

public class GcmIntentService extends GcmListenerService {

private String TAG = "myReceiver";
@Override
public  void onMessageReceived(String from, Bundle data) {

    Log.d(TAG, "message received");//this log is never shown
    if (!data.isEmpty()) { 
         Log.d(TAG, "interesting message receiver");
    }        
}
}

这是我的项目build.gradle依赖项:

classpath 'com.google.gms:google-services:1.3.0-beta1'

我想我忘了添加一些东西,这就是为什么它根本不起作用的原因。我尝试使用WLAN和SIM卡上网。因此问题不在Internet防火墙中。发件人API和GCM令牌似乎是正确的(它们是从开发者帐户的相应设置中复制并粘贴的)。

提前谢谢你的帮助。

编辑:请参阅下面的答案

Android团队

在清单中进行以下更改

替换以下代码

<service android:name=".GcmIntentService" />

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

和在

<uses-permission android:name="your.package.name.permission.C2D_MESSAGE" />

用您的软件包名称代替“ your.package.name”

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android应用程序没有收到SignalR中枢数据

Spring Kafka没有收到消息

Gorilla Websocket没有收到消息

没有收到来自频道的消息

ImapIdleChannelAdapter没有收到消息内容

GCM-很少收到主题消息

德尔福线程没有收到消息

BroadcastReceiver没有收到广播事件消息

我没有从控制台的Firebase收到消息消息

没有会话可用于通过锁令牌逻辑应用程序完成消息

没有收到推送消息

我没有收到WebSocket消息(SimpMessagingTemplate)

Android:通过活动发送消息,而没有“ MessageIntent”

使用GCM的PushNotification.register没有收到注册ID

我没有收到Android应用发送的POST变量(与SSL https相关)

没有通过parse.com在Android上收到推送通知

没有收到使用API v3进行Android应用内购买的结果

GCM android客户端未收到消息

收到GCM消息,但未调用服务功能

RSMB没有收到UDP消息

设备上未收到Android GCM消息

通过Android的FCM下游消息-没有通知?

无法收到棒棒糖下方的gcm android消息

在没有 GCM/Firebase 的情况下关闭应用程序时运行 Android 通知

java中的XMPP服务器没有收到来自GCM服务器的所有消息

我收到错误消息说在 android studio 3.1 中没有静态方法 getFont

netplan 没有被应用,当我尝试应用它时我没有收到错误消息

Android:尝试通过 SmsManager 发送短信会将消息重定向到没有地址的默认应用程序

通过 Puppeteer 在 Discord 上发送消息(没有机器人,没有应用程序)