Проблема с OneSignal Notification Extender Service NotificationCompat после перехода на androidX - PullRequest
0 голосов
/ 11 июля 2020

Я использую службу OneSignal Notification для отправки уведомления. Согласно документации, я делаю настройку, она хорошо работала раньше для более низкого Android SDK. После перехода на androidX он показывает несовместимые типы для NotificationCompat . Я не нашел правильного решения этой проблемы. Прокомментируйте, пожалуйста, свой ответ. Найдите код ниже

MyNotificationExtenderService. java

package ak.wp.meto.notification;

import android.util.Log;
import androidx.core.app.NotificationCompat;

import com.onesignal.NotificationExtenderService;
import com.onesignal.OSNotificationDisplayedResult;
import com.onesignal.OSNotificationReceivedResult;

import java.math.BigInteger;

public class MyNotificationExtenderService extends NotificationExtenderService {
    @Override
    protected boolean onNotificationProcessing(OSNotificationReceivedResult receivedResult) {
        // Read Properties from result
        OverrideSettings overrideSettings = new OverrideSettings();
        overrideSettings.extender = new NotificationCompat.Extender() {
            
            @Override
            public NotificationCompat.Builder extend(NotificationCompat.Builder builder) {
                // Sets the background notification color to Red on Android 5.0+ devices.
                return builder.setColor(new BigInteger("FFFF0000", 16).intValue());
            }
        };

        OSNotificationDisplayedResult displayedResult = displayNotification(overrideSettings);
        Log.d("OneSignalExample", "Notification displayed with id: " + displayedResult.androidNotificationId);

        return true;
    }
}

1 Ответ

0 голосов
/ 24 июля 2020

БИН GO !!! Я изменил свой код таким образом

MyNotificationExtenderService. java

package ak.wp.meto.notification;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.media.RingtoneManager;
import android.net.Uri;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import com.onesignal.NotificationExtenderService;
import com.onesignal.OSNotificationReceivedResult;
import ak.wp.meto.R;
import ak.wp.meto.activity.MainActivity;
import ak.wp.meto.activity.PostDetailsActivity;
import ak.wp.meto.data.constant.AppConstant;

public class MyNotificationExtenderService extends NotificationExtenderService {
    @Override
    protected boolean onNotificationProcessing(OSNotificationReceivedResult receivedResult) {        
        Uri defaultSoundUri = 
        RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new 
                 NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_stat_ic_notification)
                .setContentTitle(title)
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setVibrate(new long[]{1000, 1000})
                .setSound(defaultSoundUri);
        NotificationManager notificationManager = (NotificationManager) 
        getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, notificationBuilder.build());
        return false;
    }
}

Это сработало для меня

...