3

我正在为我的 android 应用程序使用解析推送通知。我按照教程下载 jar 文件,然后将其导入我的项目,我已将此代码添加到我的清单中

<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>

我也将 application.class 添加到我的包中,代码是

public class Application extends android.app.Application {

    public Application() {
    }

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

        // Initialize the Parse SDK.
        Parse.initialize(this, "zzxxxxxxxxxxxxxxVv", "wyxxxxxxxCElxxxxxxx"); 

        // Specify a Activity to handle all pushes by default.
        PushService.setDefaultPushCallback(this, MainActivity.class);

        // Save the current installation.
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

在我的主要活动中,我这样做

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ParseAnalytics.trackAppOpened(getIntent());

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    Log.e("MainActivity", "oncreate");
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

有人说它在清单中的应用程序中的名称属性有问题,所以我用我的 pacakge 名称添加了这一行

 <application
    android:name="com.test.pushnotificationTest.Application"

在解析仪表板时,当我将应用程序安装到新设备中时,我会在仪表板中获得新条目..但是当我尝试发送推送通知时,我没有得到它。我需要添加广播接收器吗?但它以前在没有广播的情况下使用相同的代码工作帮助我

4

4 回答 4

3

解析 api 有时会滞后于 android 的推送消息传递......当我签署我的 apk 时收到推送通知.. 用签署的 apk 再试一次。

于 2013-09-03T21:09:43.460 回答
3

解析通知器使用端口号 8253。如果它在您的网络中被阻止,将不会收到通知!!!!所以尝试其他一些互联网连接......这就是我解决这个问题的方法!

于 2014-02-15T09:25:03.520 回答
1

应该有 2 个接收者标签。另一个应该是这样的

<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: If you change the package name of this sample app,
                  change "com.parse.tutorials.pushnotifications" in the lines
                  below to match the new package name.
                -->
                <category android:name="com.example.ifis" />
            </intent-filter>
        </receiver>
于 2015-01-19T07:46:43.597 回答
0

将此添加到您的委托或 onCreate 活动中

ParsePush.subscribeInBackground("[channel name]", 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);
            }
          }
        });
于 2015-06-12T02:20:15.017 回答