Notification(int icon, CharSequence tickerText, long when)
void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent)
deprecatedになっていて、Notification.Builderを使えとのこと。Notification.Builderを使って書き換える。
notification = new Notification.Builder(MainActivity.this)
.setContentIntent(contentIntent).setSmallIcon(R.drawable.icon)
.setTicker("tickerText").setContentTitle("contentTitle")
.setContentText("contentText").setWhen(System.currentTimeMillis())
.getNotification();
Notification.BuilderはAPIレベル11からなので、これだと11未満でエラーになる。11未満も対象ならClassがない場合は、前回の方法。 Intent intent = new Intent(MainActivity.this,MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Notification notification;
try {
Class.forName("android.app.Notification$Builder");
notification = new Notification.Builder(MainActivity.this)
.setContentIntent(contentIntent).setSmallIcon(R.drawable.ic_launcher)
.setTicker("tickerText").setContentTitle("contentTitle")
.setContentText("contentText").setWhen(System.currentTimeMillis())
.getNotification();
} catch (ClassNotFoundException e) {
notification = new Notification(R.drawable.ic_launcher,"tickerText", System.currentTimeMillis());
notification.setLatestEventInfo(MainActivity.this,"contentTitle", "contentText", contentIntent);
}
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(12345, notification);
こうしておけば、バージョン上がって関数廃止されたとしても問題ないはず。