Android: OneSignal comment changer de Notification projet de loi icône avec une icône personnalisée ou de l'icône de l'application?
Lors de la réception de la notification du projet de loi icône est affichée à la place de l'icône de l'application ou de l'icône personnalisée que je remplace pour l'afficher à partir du code. j'ai pu changer l'icône du tableau de bord, mais je veux à partir du code
Intilaization
OneSignal.startInit(this)
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)//to hide dialog
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
Classe de récepteur
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");
}
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer une icône nommée
ic_stat_onesignal_default
dans votredrawables
répertoire qui sera affiché à la place de OneSignal par défaut de l'icône de la cloche. Il est recommandé d'utiliser le Android Studio Actif pour créer à la bonne taille et pour s'assurer qu'il sera correctement avant de l'essayer sur votre appareil.Remarque l'icône de l'application ne devrait plus être utilisé comme une petite icône de notification comme dans Android 5.0 Lollipop l'icône de l'alpha ne seront utilisées. La plupart des icônes d'application sera juste un blanc écuyer ou le cercle dans ce cas.
Voir OneSignal la page de documentation ci-dessous pour plus de détails.
https://documentation.onesignal.com/docs/customize-notification-icons
Vous devez créer des icônes pour les tailles suivantes:
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
Noter que le nom pour la taille drawable-xxxhdpi est différent.
Je vous recommande de créer des icônes avec Android Asset Studio ou de Android Studio->app->Image de l'Actif pour être sûr d'avoir les icônes pour les différentes versions d'android.
Si vous voulez avoir deux icônes de type, un pour la zone de notification et un pour la barre de notification, vous devez effectuer les opérations suivantes:
1.- Créer la même icône de l'image pour les différentes tailles:
mdpi
,hdpi
,xhdpi
,xxhpi
appelé:ic_stat_one_signal_default
2.- Créer une icône de l'image pour la taille
xxxhdpi
appelé:ic_onesignal_large_icon_default
Ressemble:
L'icône de zone de Notification/tiroir
Voir OneSignal du Oficial de la Documentation pour plus d'informations. https://documentation.onesignal.com/docs/customize-notification-icons
ic_stat_onesignal_default
etic_onesignal_large_icon_default
.