Android, Urban AirShip - change the message

房东的猫 提交于 2019-12-24 08:59:36

问题


How to change the notification message in Android to localised it? I just want to change the message what I get from Urban AirShip before it will be display on notification bar?


回答1:


You can using this method: PushManager.shared().setNotificationBuilder(null); and send your own notification with android notification from the SDK




回答2:


Yes you can modify the message once you receive the message from Urban AirShip for your internal use in the app but can't show the modified message in the notification bar.

You can check the message in your 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));


        }

            }
}



回答3:


I found the solution, its kind a dirty one, but right know I need to use this. Just after get notification from Urban AirShip I cancel all and send my own with changed message.




回答4:


I read the answers and came up with a combined solution.

  1. You want to disable UrbanAirship's default notification handler. If you do that, it won't generate and show you the notifications at all. PushManager.shared().setNotificationBuilder(null); (Using David T's suggestion)

  2. You want to build your own notification. This can be done inside your IntentReceiver. This link will do the trick.

Hope this helps others.




回答5:


Please using that code to disable Urban Airship's notifications, override BasicPushNotificationBuilder:

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


来源:https://stackoverflow.com/questions/9359982/android-urban-airship-change-the-message

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!