gpt4 book ai didi

Android:OneSignal 如何使用自定义图标或应用程序图标更改通知账单图标?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:08 26 4
gpt4 key购买 nike

当收到通知时,会显示账单图标,而不是应用程序图标或自定义图标,我会覆盖它以从代码中显示。我可以从仪表板更改图标,但我想从代码中处理它

嵌入

    OneSignal.startInit(this)
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)// to hide dialog
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();

接收类

  class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler
{
// This fires when a notification is opened by tapping on it.
@Override
public void notificationOpened(OSNotificationOpenResult result)
{
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String customKey;

Intent intent = new Intent(Roshetta.app, SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);


int requestCode = 0;

PendingIntent pendingIntent = PendingIntent.getActivity(Roshetta.app, requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);

android.support.v4.app.NotificationCompat.Builder noBuilder = new android.support.v4.app.NotificationCompat.Builder(Roshetta.app)
.setSmallIcon(R.mipmap.ic_launcher).setLargeIcon(largeIcon).setContentTitle(result.notification.payload.title)
.setContentText(result.notification.payload.body )
.setAutoCancel(true).setDefaults(android.app.Notification.DEFAULT_ALL)
.setContentIntent(pendingIntent).setSound(sound);


NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, noBuilder.build()); //0 = ID of notification


if (data != null)
{
customKey = data.optString("customkey", null);
if (customKey != null)
Log.i("OneSignalExample", "customkey set with value: " + customKey);
}

if (actionType == OSNotificationAction.ActionType.ActionTaken)
Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);


Log.i("OneSignalExample", "ExampleNotificationOpenedHandler");

最佳答案

您需要在 drawables 目录中创建一个名为 ic_stat_onesignal_default 的图标,该图标将代替 OneSignal 的默认铃铛图标显示。建议使用 Android Asset Studio创建正确的尺寸并确保它在您的设备上试用之前看起来正确。

请注意,应用程序图标不应再用作小通知图标,因为在 Android 5.0 Lollipop 中只会使用图标的 alpha。在这种情况下,大多数应用程序图标将只是一个白色的乡绅或圆圈。

有关详细信息,请参阅下面的 OneSignal 文档页面。 https://documentation.onesignal.com/docs/customize-notification-icons

关于Android:OneSignal 如何使用自定义图标或应用程序图标更改通知账单图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40664164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com