Notification.Builder(context) has been deprecated recently with the venue of Notification Channels in Android O.
PROBLEM:
After using Notification.Builder(context, StringID)
instead of Notification.Builder(context)
I did receive a notification to my Android O device.
However, after trying that on an Android 23 (M), I did not receive a notification. I debugged my code and it just stopped executing once the debugger hit the line post Notification.Builder(context, StringID) on Android 23 (M).
FIX:
To Fix this issue, I used if/else condition to segregate between Android O devices and the rest of other devices.
I have the following code snippet:
Notification.Builder notificationBuilder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationBuilder = new Notification.Builder(mContext,
mContext.getResources().getString(R.string.notification_id_channel));
} else {
notificationBuilder = new Notification.Builder(mContext);
}
Lint in Android Studio is displaying the following deprecation line:
QUESTION:
Is there a way to get rid off that deprecation warning line?
Your solution is to use NotificationCompat.Builder(Context context, String channelId)
. If you use this you don't have to check the API level, the Builder ignores the channel ID on pre-Oreo devices.
I have tested it on API 15, 22, 23, and 26 and it works perfectly.