解析推送通知不适用于Android

时间:2013-09-03 12:41:22

标签: android push-notification parse-platform

我正在为我的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);

有些人说它在清单中的应用程序中名称attribut有问题,所以我用我的pacakge名称引用了这一行

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

在解析仪表板中,当我将应用程序安装到新设备中时,我获得了新的入口仪表板..但是当我尝试发送推送通知时,我没有得到它。 我需要添加brodcast接收器吗?但它之前使用相同的代码没有广播 帮帮我们

4 个答案:

答案 0 :(得分:3)

解析api有时滞后于Android的推送消息传递... 当我签署我的apk时,我得到推送通知..再次使用签名的apk进行尝试。

答案 1 :(得分:3)

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

答案 2 :(得分: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>

答案 3 :(得分: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);
            }
          }
        });