gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:50:01 25 4
gpt4 key购买 nike

我知道这个问题已经被问了很多,但也有很多人没有得到回答。

但是,我使用 Parse.com 向设备发送推送通知。在 iOS 上它工作正常。但它不会在 Android 设备上接收。

当我查看服务页面上的“推送”选项卡时,我发现没有任何推送未发送。 “发送的推送”列中的值为 0(零)。

然后我通过 GCM (gcm-http.googleapis.com) 发送推送,我的设备收到了消息。

也许问题出在 Parse.com 的设置上?

我从 Google 添加了发件人 ID(项目编号)和 API key 。

我的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 的建议,我注意到,当我安装我的应用程序并在第一次初始化它时,我得到了我的 token ,推送工作正常。但是,当我再次打开我的应用程序时,我得到了另一个 token ,并且在我从 Parse 中删除所有数据、卸载我的应用程序并重新安装之前,推送不起作用。

有什么想法吗?

最佳答案

我刚才遇到了同样的问题!这是诀窍:

我卸载了我的应用程序并删除了之前存储在 Parse 上的所有数据(安装、 session 和用户)。

之后,只需再次安装您的应用程序,如果您按照 Parse 教程所做的一切都是正确的:https://www.parse.com/tutorials/android-push-notifications

尝试发送另一个测试推送;)

关于Android 推送通知未接收/未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com