簡體   English   中英

Android推送通知未接收/未發送

[英]Android push notifications not receiving/not sending

我知道這個問題已經問了很多,但很多人都沒有回答。

但是,我使用Parse.com將推送通知發送到設備。 在iOS上運行正常。 但這不是在Android設備上收到的。

當我查看服務頁面上的“推送”選項卡時,我看到沒有發送任何推送。 “發送的推送”列中的值為0(零)。

然后,我通過GCM(gcm-http.googleapis.com)發送了推送,並且我的設備收到了該消息。

也許問題出在Parse.com的設置中?

Google為我添加了發件人ID(項目編號)和API密鑰。

我的AndroidManifest.xml緊接在</application>標記之前:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<permission android:name="my.app.name.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="my.app.name.permission.C2D_MESSAGE" />

我的AndroidManifest.xml緊靠</application>標記之前:

    <meta-data android:name="com.parse.push.notification_icon" android:resource="@drawable/ic_stat_bt"/>

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

我的應用程式類別

package my.app.name;

import android.util.Log;
import android.os.Bundle;

import com.parse.Parse;
import com.parse.ParseInstallation;
import com.parse.ParsePush;
import com.parse.SaveCallback;
import com.parse.ParseException;

public class MyApplication extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // Parse
        Parse.initialize(this, "", "");
        ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
            public void done(ParseException e) {
                if (e == null) {
                    Log.d("com.parse.push", "successfully installed.");
                    ParsePush.subscribeInBackground("", new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e == null) {
                            Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                        } else {
                            Log.e("com.parse.push", "failed to subscribe for push", e);
                        }
                    }
                });
            } else {
                Log.e("com.parse.push", "failed to install", e);
            }
        }
    });
}
...

在Clayton Oliveira的建議下,我注意到,當我安裝應用程序並首次對其進行初始化時,我得到了我的令牌,並且推送工作正常。 但是,當我再次打開應用程序時,我又得到了另一個令牌,直到我從Parse中刪除所有數據后,推送才起作用,請卸載我的應用程序並重新安裝。

有任何想法嗎?

我現在正面臨着同樣的問題! 訣竅如下:

我卸載了我的應用程序,並刪除了先前存儲在Parse中的所有數據(安裝,會話和用戶)。

之后,只需再次安裝您的應用,如果您正確執行了Parse教程中的所有操作,則: https : //www.parse.com/tutorials/android-push-notifications

嘗試發送另一個測試推送;)

如果您不添加消息的權限,則將其添加到清單文件中。

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

並在應用程序的build.gradle文件中添加此firebase lib:

compile 'com.google.firebase:firebase-messaging:11.0.4'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM