0

Android アプリにアーバン エアシップのプッシュ通知を追加しています。テストプッシュを送信すると、私のカスタムBroadcastReceiverは通知を受け取ります。これがonReceive()方法です。

public class IntentReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent == null)
            return;

    String action = intent.getAction();

    if (action.equals(PushManager.ACTION_PUSH_RECEIVED)) {
        int id = intent.getIntExtra(PushManager.EXTRA_NOTIFICATION_ID, 0); //Breakpoint here

        Log.w("my app", "Received push notification. Alert: "
                + intent.getStringExtra(PushManager.EXTRA_ALERT)
                + " [NotificationID="+id+"]");

        logPushExtras(intent);

    } else if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {
        //Other stuff here
    }

ブレークポイント (コメントに示されている位置) で実行が停止し、詳細がログに記録されます。

ただし、通知領域には通知が表示されません。UA プッシュ通知を使用する別のアプリでは、これだけだったと思いますが、今回は機能していないようです。

マニフェスト ファイルで何か間違ったことをしたか、どこかにクラスを実装するのを忘れたのではないかと思います。

何か案は?

追加情報

拡張アプリケーション:

public class ExtendedApplication extends Application {

    public void onCreate(){
        AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);
        UAirship.takeOff(this, options);
        PushManager.enablePush();

        PushPreferences prefs = PushManager.shared().getPreferences();
        Log.e("my app", "My Application onCreate - App APID: " + prefs.getPushId());

        PushManager.shared().setIntentReceiver(IntentReceiver.class);
    }
}

編集

追加してみました

PushManager.shared().setNotificationBuilder(new BasicPushNotificationBuilder());

この投稿で提案されているように、私の ExtendedApplication に。

4

1 に答える 1

0

UA サイトから「Alert」フィールドが空白のテスト プッシュを送信していました。そこにいくつかのテキストを入れてみましたが、今はうまくいきます。理由はわかりませんが、黙って失敗するべきではないと思います。

教訓: アラート フィールドを空白のままにしないでください。

于 2013-07-15T11:34:54.997 に答える