当前位置: 首页 > 知识库问答 >
问题:

无法在Android上接收解析推送通知

丁勇
2023-03-14

我正在开发简单的android应用程序,非常新的解析。我遵循解析文档添加后端功能。解析核心是一个简单的部分,但我不能发送推送通知从android设备。但从解析仪表板发送时会收到推送通知。我的清单文件如下:

    <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="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="com.google.android.c2dm.permission.SEND" />

        <!--
          IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
          to match your app's package name + ".permission.C2D_MESSAGE".
        -->
        <permission android:protectionLevel="signature"
            android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" />
        <uses-permission android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" />

<service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            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" />

                <!--
                  IMPORTANT: Change "com.parse.starter" to match your app's package name.
                -->
                <category android:name="loaniistar.loaniistar" />
            </intent-filter>
        </receiver>
public class MApplication extends Application {

    String applicationiId = "5npdddECsGdDk49OttttuHq6iZdZpddI0cHDsz";
    String clientKey = "SjF1BWamssstycthSjf2dddduhcuwW2VccccCCuFlE";

    public UserAccounts userAccount = null;

    @Override
    public void onCreate() {
        super.onCreate();

        Parse.enableLocalDatastore(this);
        ParseCrashReporting.enable(this);
        Parse.initialize(this, applicationiId, clientKey);
        PushService.startServiceIfRequired(this);
    }

}

订阅活动类中的频道:

ParsePush.subscribeInBackground("manager", new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e == null) {

                        }
                        else
                        {
                            btnLoginEnable();
                        }
                    }
                });

正在另一个活动类中发送推送通知:

 // Sending Push
                    ParsePush push = new ParsePush();
                    push.setChannel("manager");
                    push.setMessage(m.getMessage().substring(0, (int) m.getMessage().length() / 3));
                    //push.sendInBackground();
                    push.sendInBackground(new SendCallback() {
                        @Override
                        public void done(ParseException e) {
                            if(e == null)
                            {
                                Toast.makeText(getActivity(), "Notification sent", Toast.LENGTH_SHORT).show();
                            }
                            else {
                                Toast.makeText(getActivity(), "Notification Not sent", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

在“installation”类中添加了行,而GCMSenderId为空!!这是问题所在吗?请帮助我,为什么我不能收到通知时,从我的android设备?使用的库:bolts-android-1.1.4.jar parse-1.8.2.jar parsecrashreporting-1.8.2.jar

共有1个答案

子车凯泽
2023-03-14

如果您刚刚在解析中创建了应用程序,并将其集成到您的应用程序中,那么它通常不会立即工作。同样的事情发生在我身上。我没有得到数据,但过了一段时间后,当我看到解析仪表板时,我得到了请求

大约需要20分钟。您可以尝试查看Parse Analytics。(如果您已经实现了它)如果Parse在您的Analytics Dashboard中显示了请求,那么它将完全正常工作

 类似资料:
  • 我在google cloud上使用推送通知,但出于某种原因,我无法在模拟器上接收推送通知。 但是,当我在实际设备上测试时,相同的应用程序确实会收到通知。

  • 消息“成功订阅到广播频道。”在应用程序启动时打印。但是当我使用parse.com上的“发送推送通知”功能时,我的手机没有收到任何推送通知。 为什么不起作用?

  • 我看过这个问题。我有完全相同的问题,但我有来自Thawte的有效ssl证书。我只使用id、type和address属性进行了观察请求,如这里所述。我的address属性类似于 我甚至没有收到同步消息。会出什么问题?

  • 我没有收到Android推送通知。我能够 < li >注册设备 < li >接收设备标识符 < li >将通知消息推送到GCM 我成功进入通知发送事件,但我的设备上没有收到任何消息。成功的推送代码如下:

  • 我刚刚开始为Android和iPhone开发一个应用程序,使用和。现在我正试图向应用程序添加推送通知。我从的控制面板发送测试推送,但在我正在测试的Android手机上什么也没有发生。 我的config.json如下所示: 添加了以下代码来侦听传入的推送: 为了测试这个应用程序,我将我的Android手机通过USB线连接到我的Mac上,然后在浏览器的触发器工具包中选择“Run Android”(运行

  • 我正在使用API explorer和Chrome Advanced Rest Client根据给定的示例观看事件资源。https://developers.google.com/google-apps/calendar/v3/push#watch_request_examples 要求 回应 > 我在google上搜索了这个问题,但找不到太多帮助。 有人能告诉我,请求有什么问题吗?