102 lines
4.2 KiB
Java
102 lines
4.2 KiB
Java
package com.example.android.basicnotifications;
|
|
|
|
import android.app.Activity;
|
|
import android.app.NotificationManager;
|
|
import android.app.PendingIntent;
|
|
import android.content.Intent;
|
|
import android.graphics.BitmapFactory;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.support.v4.app.NotificationCompat;
|
|
import android.view.View;
|
|
|
|
/**
|
|
* The entry point to the BasicNotification sample.
|
|
*/
|
|
public class MainActivity extends Activity {
|
|
/**
|
|
* A numeric value that identifies the notification that we'll be sending.
|
|
* This value needs to be unique within this app, but it doesn't need to be
|
|
* unique system-wide.
|
|
*/
|
|
public static final int NOTIFICATION_ID = 1;
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.sample_layout);
|
|
|
|
}
|
|
|
|
/**
|
|
* Send a sample notification using the NotificationCompat API.
|
|
*/
|
|
public void sendNotification(View view) {
|
|
|
|
// BEGIN_INCLUDE(build_action)
|
|
/** Create an intent that will be fired when the user clicks the notification.
|
|
* The intent needs to be packaged into a {@link android.app.PendingIntent} so that the
|
|
* notification service can fire it on our behalf.
|
|
*/
|
|
Intent intent = new Intent(Intent.ACTION_VIEW,
|
|
Uri.parse("http://developer.android.com/reference/android/app/Notification.html"));
|
|
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
|
|
// END_INCLUDE(build_action)
|
|
|
|
// BEGIN_INCLUDE (build_notification)
|
|
/**
|
|
* Use NotificationCompat.Builder to set up our notification.
|
|
*/
|
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
|
|
|
|
/** Set the icon that will appear in the notification bar. This icon also appears
|
|
* in the lower right hand corner of the notification itself.
|
|
*
|
|
* Important note: although you can use any drawable as the small icon, Android
|
|
* design guidelines state that the icon should be simple and monochrome. Full-color
|
|
* bitmaps or busy images don't render well on smaller screens and can end up
|
|
* confusing the user.
|
|
*/
|
|
builder.setSmallIcon(R.drawable.ic_stat_notification);
|
|
|
|
// Set the intent that will fire when the user taps the notification.
|
|
builder.setContentIntent(pendingIntent);
|
|
|
|
// Set the notification to auto-cancel. This means that the notification will disappear
|
|
// after the user taps it, rather than remaining until it's explicitly dismissed.
|
|
builder.setAutoCancel(true);
|
|
|
|
/**
|
|
*Build the notification's appearance.
|
|
* Set the large icon, which appears on the left of the notification. In this
|
|
* sample we'll set the large icon to be the same as our app icon. The app icon is a
|
|
* reasonable default if you don't have anything more compelling to use as an icon.
|
|
*/
|
|
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
|
|
|
|
/**
|
|
* Set the text of the notification. This sample sets the three most commononly used
|
|
* text areas:
|
|
* 1. The content title, which appears in large type at the top of the notification
|
|
* 2. The content text, which appears in smaller text below the title
|
|
* 3. The subtext, which appears under the text on newer devices. Devices running
|
|
* versions of Android prior to 4.2 will ignore this field, so don't use it for
|
|
* anything vital!
|
|
*/
|
|
builder.setContentTitle("BasicNotifications Sample");
|
|
builder.setContentText("Time to learn about notifications!");
|
|
builder.setSubText("Tap to view documentation about notifications.");
|
|
|
|
// END_INCLUDE (build_notification)
|
|
|
|
// BEGIN_INCLUDE(send_notification)
|
|
/**
|
|
* Send the notification. This will immediately display the notification icon in the
|
|
* notification bar.
|
|
*/
|
|
NotificationManager notificationManager = (NotificationManager) getSystemService(
|
|
NOTIFICATION_SERVICE);
|
|
notificationManager.notify(NOTIFICATION_ID, builder.build());
|
|
// END_INCLUDE(send_notification)
|
|
}
|
|
}
|