Androidのお知らせNotification
5668 ワード
NotificationとNotificationManagerの基本的な使い方
1.用途:通知を設定する;2.説明:NotificationManagerはバックグラウンドで実行されるサービスで、通知を送信します.Notificationクラスは、永続性の通知を表す.ステータスバーとステータスバーの違い:a)ステータスバー:携帯電話の画面の一番上のバーの形をした領域;ステータスバーには多くの情報量があります.例えば、usb接続アイコン、携帯電話信号アイコン、バッテリーアイコン、時間アイコンなどb)ステータスバー:携帯電話がステータスバーから滑り落ちる伸縮可能なview;ステータスバーには一般的に2種類あります:i.進行中のプログラム;ii. 通知イベント4.一般的なNotificationで送信される情報:a)1つのステータスバーアイコンb)は、引張ステータスバーに大きなタイトル、小さなタイトル、アイコンの情報を表示し、このクリックイベントを処理する.例えば、プログラムを呼び出すエントリクラス;c)閃光、led或いは振動;5.Notificationを作成するには、a)NotificationManagerオブジェクトを取得する:NotificationManager nm=getSystemService(Services.NOTIFICATION_SERVICE);b)設定属性:内容、アイコン、タイトル、対応する処理動作;c)nmを通過する.notify(); メソッドはnotificationメッセージを実行します.d)nmを通過する.cance(); 方法:速達をキャンセルします.6.Notificationクラスの定数、フィールド、メソッドの説明:a)DEFAULT_ALLはすべてのデフォルト値を使用し、音、振動、フラッシュなどのb)DEFAULT_LIGHTSはデフォルトのライトプロンプトを使用します.c) DEFAULT_SOUNDS使用デフォルトプロンプト音d)DEFAULT_VIBRATEはデフォルトの携帯電話の振動eを使用します)ヒント:これらの効果の定数は重ねることができます;7.関連権限:a)携帯電話の振動:package com.example.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Audio;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button send, cancel;
private Notification notification; // 通知
private NotificationManager notificationManager; // 通知系统服务
/**
* 获取布局文件中控件的对象
*/
public void init() {
Log.i("msg", "init()...调用");
send = (Button) findViewById(R.id.send);
cancel = (Button) findViewById(R.id.cancel);
}
// 程序入口
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(); // 初始化
// 设置监听
send.setOnClickListener(listener);
cancel.setOnClickListener(listener);
}
/**
* 发出通知 --
*/
public void sendNotification() {
// 获取对象
notificationManager = (NotificationManager) this
.getSystemService(Service.NOTIFICATION_SERVICE);
notification = new Notification();
notification.icon = R.drawable.ic_launcher; // 设置图标,公用图标
notification.tickerText = "状态条标题,提示标题";
notification.when = System.currentTimeMillis(); // 当前时间 ,通知时间
// 提示音
notification.defaults = Notification.DEFAULT_SOUND;
notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3"); // 播放指定位置音乐
notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6"); // 系统音乐
// 手机震动 -- 权限: <uses-permission android:name="android.permission.VIBRATE"/>
notification.defaults = Notification.DEFAULT_VIBRATE;
long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate;
// LED 灯闪烁
notification.defaults = Notification.DEFAULT_LIGHTS;
notification.ledARGB=0xff00ff00;
notification.ledOffMS = 1000;
notification.ledOnMS = 300; // 闪光时间,毫秒
/*
* 设置Flag的值:说明
* FLAG_AUTO_CANCEL : 通知能被状态按钮清除掉
* FLAG_NO_CLEAR : 点击清除按钮,不清除
* FLAG_ONGOING_EVENT: 该通知放置在正在运行组中
* FLAG_INSISTENT : 是否一直进行,比如播放音乐,直到用户响应
*/
notification.flags = Notification.FLAG_ONGOING_EVENT;
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
/*
* 功能:显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象
* 1:上下文环境
* 2:状态栏中的大标题
* 3:状态栏中的小标题;
* 4:点击后发送的PendingIntent对象
*/
notification.setLatestEventInfo(this, "状态栏标题", "状态栏内容", pi);
notificationManager.notify(1, notification);
}
/**
* 取消通知
*/
public void cancelNotification() {
notificationManager.cancel(1);
}
// 按钮点击监听器
private OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
if (v.getId() == R.id.send) { // 发出通知
sendNotification();
return;
}
if (v.getId() == R.id.cancel) { // 取消通知
cancelNotification();
return;
}
}
};
}
次はレイアウトファイルです.
1.用途:通知を設定する;2.説明:NotificationManagerはバックグラウンドで実行されるサービスで、通知を送信します.Notificationクラスは、永続性の通知を表す.ステータスバーとステータスバーの違い:a)ステータスバー:携帯電話の画面の一番上のバーの形をした領域;ステータスバーには多くの情報量があります.例えば、usb接続アイコン、携帯電話信号アイコン、バッテリーアイコン、時間アイコンなどb)ステータスバー:携帯電話がステータスバーから滑り落ちる伸縮可能なview;ステータスバーには一般的に2種類あります:i.進行中のプログラム;ii. 通知イベント4.一般的なNotificationで送信される情報:a)1つのステータスバーアイコンb)は、引張ステータスバーに大きなタイトル、小さなタイトル、アイコンの情報を表示し、このクリックイベントを処理する.例えば、プログラムを呼び出すエントリクラス;c)閃光、led或いは振動;5.Notificationを作成するには、a)NotificationManagerオブジェクトを取得する:NotificationManager nm=getSystemService(Services.NOTIFICATION_SERVICE);b)設定属性:内容、アイコン、タイトル、対応する処理動作;c)nmを通過する.notify(); メソッドはnotificationメッセージを実行します.d)nmを通過する.cance(); 方法:速達をキャンセルします.6.Notificationクラスの定数、フィールド、メソッドの説明:a)DEFAULT_ALLはすべてのデフォルト値を使用し、音、振動、フラッシュなどのb)DEFAULT_LIGHTSはデフォルトのライトプロンプトを使用します.c) DEFAULT_SOUNDS使用デフォルトプロンプト音d)DEFAULT_VIBRATEはデフォルトの携帯電話の振動eを使用します)ヒント:これらの効果の定数は重ねることができます;7.関連権限:a)携帯電話の振動:
次はレイアウトファイルです.
<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/send"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" " />
<Button
android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" " />
</LinearLayout>