迁移到 androidX 后,OneSignal Notification Extender Service NotificationCompat 面临问题
Facing problem with OneSignal Notification Extender Service NotificationCompat after migrating to androidX
我正在使用 OneSignal 通知服务发送通知。根据文档,我正在设置它在较低的 Android SDK 之前运行良好。迁移到 androidX 后,它显示 incompatible types for 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;
}
}
宾果!!!我这样修改了我的代码
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;
}
}
这对我有用
我正在使用 OneSignal 通知服务发送通知。根据文档,我正在设置它在较低的 Android SDK 之前运行良好。迁移到 androidX 后,它显示 incompatible types for 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;
}
}
宾果!!!我这样修改了我的代码
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;
}
}
这对我有用