簡體   English   中英

Android,Urban AirShip-更改消息

[英]Android, Urban AirShip - change the message

如何在Android中將通知消息更改為本地化? 我只想更改從Urban AirShip收到的消息,然后將其顯示在通知欄上?

您可以使用以下方法: PushManager.shared().setNotificationBuilder(null); 並通過SDK的android通知發送您自己的通知

我閱讀了答案,並提出了一個綜合解決方案。

  1. 您要禁用UrbanAirship的默認通知處理程序。 如果這樣做,它將完全不會生成並向您顯示通知。 PushManager.shared().setNotificationBuilder(null); (使用David T的建議)

  2. 您要構建自己的通知。 這可以在您的IntentReceiver內部完成。 鏈接將解決問題。

希望這對其他人有幫助。

請使用該代碼禁用城市飛艇的通知,並覆蓋BasicPushNotificationBuilder:

BasicPushNotificationBuilder nb = new BasicPushNotificationBuilder() {
    @Override
    public Notification buildNotification(String alert,
            Map<String, String> extras) {
        return null;
    }
};
// Disable notifications
PushManager.shared().setNotificationBuilder(nb);

是的,您可以在收到Urban AirShip的消息后對其進行修改,以供在應用程序內部使用, 但無法在通知欄中顯示修改的消息

您可以在IntentReceiver中查看消息

public class IntentReceiver extends BroadcastReceiver {

    private static final String logTag = "Hey";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(logTag, "Received intent: " + intent.toString());
        String action = intent.getAction();

        if (action.equals(PushManager.ACTION_PUSH_RECEIVED)) {

                int id = intent.getIntExtra(PushManager.EXTRA_NOTIFICATION_ID, 0);

          Log.v(logTag, "Received push notification. Alert: " + intent.getStringExtra(PushManager.EXTRA_ALERT)
                + ". Payload: " + intent.getStringExtra(PushManager.EXTRA_STRING_EXTRA) + ". NotificationID="+id);

               //can get your message here

        } else if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {

            Log.v(logTag, "User clicked notification. Message: " + intent.getStringExtra(PushManager.EXTRA_ALERT)+ ".Payload:" + intent.getStringExtra("PushManager.EXTRA_STRING_EXTRA"));


            Intent launch = new Intent(Intent.ACTION_MAIN);

            UAirship.shared().getApplicationContext().startActivity(launch);

        } else if (action.equals(PushManager.ACTION_REGISTRATION_FINISHED)) {
            Log.i(logTag, "Registration complete. APID:" + intent.getStringExtra(PushManager.EXTRA_APID)
                    + ". Valid: " + intent.getBooleanExtra(PushManager.EXTRA_REGISTRATION_VALID, false));


        }

            }
}

我找到了解決方案,雖然有點臟,但是正確知道我需要使用它。 在收到Urban AirShip的通知后,我將全部取消並發送自己的更改消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM