我知道這是一個老問題,但UrbanAirship GET相當經常更新,所以我決定去幫助別人誰可能達到這一頁。從版本6.0.1開始,不再有BasicNotificationBuilder
。爲了使用圖標和顏色以及其他類型自定義您的通知,您需要擴展NotifcationFactory
類,並覆蓋createNotification
方法。
就像下面的例子所示:
public class MyNotificationFactory extends NotificationFactory {
public MyNotificationFactory(Context context){
super(context);
}
@Override
public Notification createNotification(PushMessage pushMessage, int i) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(getContext())
.setContentTitle(getContext().getResources().getString(R.string.app_name))
.setContentText(pushMessage.getAlert())
.setSmallIcon(R.drawable.your_icon_here)
.setColor(getContext().getResources().getColor(R.color.your_color_here))
.setAutoCancel(true);
return builder.build();
}
@Override
public int getNextId(PushMessage pushMessage) {
return NotificationIDGenerator.nextID();
}
}
最後,則必須將此作爲UrbanAirship的新通知工廠在您的應用程序類或任何你初始化UA:
UAirship.shared().getPushManager().setNotificationFactory(new MyNotificationFactory(getApplicationContext()));
嘿保羅,我對解決自定義圖標,並修改插件只顯示一個圖標,如果發生多個通知。你的代碼示例看起來是一個很好的開始,我想表示感謝你回答你自己的問題。我想知道您是否可以闡明您重寫此代碼的位置?我對Android開發很陌生,我的應用程序使用Phonegap。因此,我實際上甚至不知道這個代碼會在哪裏。任何幫助都會很棒。謝謝! –
@RyanMartin無需爲修改原始庫而弄髒手。 您可以通過將上面的代碼放在應用程序的'onCreate()'中來覆蓋功能。您將需要定義自己的擴展'Application'的類,並使用''中的'android:name =「...」'屬性在清單中聲明它。要使所有通知顯示在單個圖標下,一個好的開始就是設置一個固定的通知ID。 如果您遇到任何困難,請查看您有多遠,並隨時鏈接到新問題。 –
太好了,非常感謝信息,保羅。 –