Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a persistent notification and prevent notification in status bar

I have the following code which I am using for an android app:

package com.authorwjf.e_notifications;  import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle;  public class Main extends Activity {     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         Bitmap bm = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.avatar),                  getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width),                 getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_height),                  true);         Intent intent = new Intent(this, Main.class);         PendingIntent pendingIntent = PendingIntent.getActivity(this, 01, intent, Intent.FLAG_ACTIVITY_CLEAR_TASK);         Notification.Builder builder = new Notification.Builder(getApplicationContext());         builder.setContentTitle("This is the title");         builder.setContentText("This is the text");         builder.setSubText("Some sub text");         builder.setNumber(101);         builder.setContentIntent(pendingIntent);         builder.setTicker("Fancy Notification");         builder.setSmallIcon(R.drawable.ic_launcher);         builder.setLargeIcon(bm);         builder.setAutoCancel(true);         builder.setPriority(0);         Notification notification = builder.build();         NotificationManager notificationManger =                  (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);         notificationManger.notify(01, notification);             }  } 

Basically the app when launched creates a notification, now I have a few questions:

  • Is it possible when the app is launched that the notification is displayed in the the pull down notification list but without the icon in the status bar. ie. refer to

http://imagebin.org/226494

can the icon circled in red not be displayed? Ultimately I would like to create a service that just sits in the pull down notification.

  • Is there away to make the notification in the pulldown persist ie. if the icon circled in blue (http://imagebin.org/226494) is pressed that the notification still remains?

I am new to android dev and just trying to get to grips with what I can do with notifications.

Thanks

like image 264
Dino Avatar asked Aug 30 '12 21:08

Dino


1 Answers

  • A1: To remove the status bar icon, use this trick:

    builder.setSmallIcon(android.R.color.transparent); //Tested and worked in API 14 
  • A2: To make persistant Notification, add this line:

    builder.setOngoing(true) 
like image 180
iTurki Avatar answered Oct 04 '22 04:10

iTurki