[英]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.