Why does Eclipse not recognize the build() method from the Notification.Builder class to return a Notification object?
android, deprecated, eclipse, notificationmanager
Solution
If you want develop for version SDK lower than 11, you can use this code instead android.app.Notification.Builder class for creation notification:
private void createNotification(){
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "Hello", System.currentTimeMillis());
Intent notificationIntent = new Intent(this, YourActivity.class);
Random r = new Random();
int notificationId = r.nextInt();
notificationIntent.putExtra("n_id", notificationId);
PendingIntent contentIntent = PendingIntent.getActivity(this, notificationId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.setLatestEventInfo(this, "Party", "Welcome!", contentIntent);
mNotificationManager.notify(notificationId, notification);
}
You can cancel this notification in YourActivity like this:
public class YourActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity);
int notificationId = getIntent().getIntExtra("n_id", -1);
if (notificationId!=-1) {
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(notificationId);
}
}
}
Problem
This is my code: ``` NotificationManager mNotificationManager = (NotificationManager) c.getSystemService(ns); //Instantiate the notification CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification.Builder builder = new Notification.Builder(c) .setTicker(tickerText) .setWhen(when) .setContentTitle("Test Notification") .setContentText(arg1.getStringExtra("info")) .setSmallIcon(R.drawable.ic_launcher) .setAutoCancel(true); Notification notification = builder.getNotification(); mNotificationManager.notify(88, notification); ``` It works find, but using `Notification notification = builder.getNotification();` is deprecated. as I should be doing `Notification notification = builder.build();`. Problem is Eclipse isn't recognizing it as such, meaning it won't let me compile. The doc is clear that `build()` exists and its the preferred method, but its not working on my end. I would like to use non-deprecated code, so any help will be much appreciated. imports ``` import android.app.Notification; import android.app.Notification.Builder; import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; ``` Be aware that `import android.app.Notification.Builder;` is saying its not being used.