NotificationStatusBarWithCustomViewActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
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.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RemoteViews; public class NotificationStatusBarWithCustomViewActivity extends Activity { // Notification ID to allow for future updates private static final int MY_NOTIFICATION_ID = 1; // Notification Count private int mNotificationCount; // Notification Text Elements private final CharSequence tickerText = "This is a Really, Really, Super Long Notification Message!"; private final CharSequence contentText = "You've Been Notified!"; // Notification Action Elements private Intent mNotificationIntent; private PendingIntent mContentIntent; // Notification Sound and Vibration on Arrival private Uri soundURI = Uri .parse("android.resource://course.examples.Notification.StatusBarWithCustomView/" + R.raw.alarm_rooster); private long[] mVibratePattern = { 0, 200, 200, 300 }; RemoteViews mContentView = new RemoteViews( "course.examples.Notification.StatusBarWithCustomView", R.layout.custom_notification); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mNotificationIntent = new Intent(getApplicationContext(), NotificationSubActivity.class); mContentIntent = PendingIntent.getActivity(getApplicationContext(), 0, mNotificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK); final Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Define the Notification's expanded message and Intent: mContentView.setTextViewText(R.id.text, contentText + " (" + ++mNotificationCount + ")"); // Build the Notification Notification.Builder notificationBuilder = new Notification.Builder( getApplicationContext()) .setTicker(tickerText) .setSmallIcon(android.R.drawable.stat_sys_warning) .setAutoCancel(true) .setContentIntent(mContentIntent) .setSound(soundURI) .setVibrate(mVibratePattern) .setContent(mContentView); // Pass the Notification to the NotificationManager: NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(MY_NOTIFICATION_ID, notificationBuilder.build()); } }); } } |
NotificationSubActivity.java
1 2 3 4 5 6 7 8 9 10 11 |
import android.app.Activity; import android.os.Bundle; public class NotificationSubActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub_activity); } } |
main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/notify_string" android:textSize="24sp" /> </LinearLayout> |
sub_activity.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/intent_received_string" android:textSize="24sp" > </TextView> </LinearLayout> |
custom_notification.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="3dp" > <ImageView android:id="@+id/image" android:layout_width="44dp" android:layout_height="44dp" android:layout_marginRight="10dp" android:contentDescription="@string/eye_desc_string" android:src="@drawable/fire_eye_alien" /> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#FFF" android:textSize="24sp" /> </LinearLayout> |