【Android(OneSignal如何使用自定义图标或应用图标更改通知帐单图标())】别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述Android:OneSignal如何使用自定义图标或应用图标更改通知帐单图标?相关的知识,希望能为你提供帮助。
收到通知后,会显示帐单图标而不是应用图标或自定义图标,我会覆盖它以显示代码。我可以从仪表板更改图标,但我想从代码中处理它
Intilaization
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 = https://www.songbingjia.com/android/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 notificationif (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");
}
答案您需要在
ic_stat_onesignal_default
目录中创建一个名为drawables
的图标,该图标将显示而不是OneSignal的默认响铃图标。建议使用Android Asset Studio创建正确的尺寸,并确保它在您的设备上尝试之前看起来正确。请注意,应用图标不应再用作Android 5.0 Lollipop中的小型通知图标,只会使用图标的alpha。在这种情况下,大多数应用程序图标只是一个白色的乡绅或圈子。
有关详细信息,请参阅下面的OneSignal文档页面。 https://documentation.onesignal.com/docs/customize-notification-icons
另一答案您必须为以下尺寸创建图标:
drawable-hdpi/ic_stat_one_signal_default.png
drawable-mdpi/ic_stat_one_signal_default.png
drawable-xhdpi/ic_stat_one_signal_default.png
drawable-xxhdpi/ic_stat_one_signal_default.png
drawable-xxxhdpi/ic_onesignal_large_icon_default.png
请注意,drawable-xxxhdpi大小的名称是不同的。
我建议使用Android Asset Studio或Android Studio-> app-> Image Asset创建图标,以确保拥有不同Android版本的图标。
如果要输入两个图标,一个用于通知区域,另一个用于通知抽屉,则必须执行以下操作:
1.-为不同尺寸创建相同的图像图标:qazxsw poi,qazxsw poi,qazxsw poi,
mdpi
,名为:hdpi
2.-为
xhdpi
大小创建一个不同的图像图标:xxhpi
看起来像:
ic_stat_one_signal_default
有关更多信息,请参阅OneSignal官方文档。 qazxsw poi
推荐阅读
- 通过WordPress网站将通知推送到Android应用程序
- 重复通知GCM android应用程序
- xcode 8.0“将Push Notif(..)添加到您的App ID”警告,同时已添加
- 如何解决Composer安装/更新错误(PackageVersions\Installer::activate()的返回值必须是PackageVersions\void的实例,不返回任何值)
- PHP或WordPress(哪个对你的业务更好,为什么())
- 保护黑客网站安全的6种方法
- UI/UX决定了你的mCommerce(移动商务)应用程序的未来-是真的吗()
- 本地应用程序或混合应用程序的分析()
- 如何使用CLI在Plesk Onyx中卸载PHP处理程序