Java/Android/応用編/ノーティフィケーションを試す

Top > Java > Android > 応用編 > ノーティフィケーションを試す

android応用編?

ノーティフィケーションを試す

androidでは、何らかのイベントが発生したことをユーザに伝える仕組みが用意されています。
これは、たとえばサービスなどでバックグラウンドに動作するプロセスから、ユーザに伝える手段として使えたりします。

ユーザに伝えるため、Toastクラスを使う

	Toast.makeText(this, "テスト通知", Toast.LENGTH_LONG).show();

以下のように表示されます。

android_notification_toast.jpg

ステータスバーへの登録(ボタン押下時にバイブさせる)

NotificationTestActivity?クラス

	public class NotificationTestActivity extends Activity {
	
	    private NotificationManager notificationManager;
	
		/** Called when the activity is first created. */
	    @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.main);
	
	        this.notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
	
	        Button button = (Button)findViewById(R.id.ButtonNotify);
	        button.setOnClickListener(new View.OnClickListener(){
	
				@Override
				public void onClick(View v) {
					notificationManager.cancelAll();
					Intent intent = new Intent(NotificationTestActivity.this, LatestEventActivity.class);
					Notification notification = new Notification(R.drawable.icon,
												"テスト",
												System.currentTimeMillis());
	
					PendingIntent pendingIntent = PendingIntent.getActivity(NotificationTestActivity.this, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
					notification.setLatestEventInfo(
											NotificationTestActivity.this,
											"title", "contentText", pendingIntent);
	
					notification.flags = Notification.FLAG_AUTO_CANCEL;
					// バイブレーション
					notification.defaults |= Notification.DEFAULT_VIBRATE;
	
					notificationManager.notify(R.string.test, notification);
	
				}
	
	        });
	
	
	    }
	
	}

PendingIntent?.getActivityの引数で指定されたintentは、項目をクリックされたときに呼び出されます。

notification.flags = Notification.FLAG_AUTO_CANCEL;を指定することで、表示が一定時間経過するとステータスバーから自動的に消えるようになります。

notification.defaults |= Notification.DEFAULT_VIBRATE;はバイブレーションの設定になります。
※バイブレーションさせるときには、マニフェストファイルに以下の定義が必要になります。

<uses-permission android:name="android.permission.VIBRATE" />

notificationManager.notifyメソッド呼び出しにより、ステータスバーへの表示が行われます。

android_notification_statusbar.jpg

layout/main.xml

	<?xml version="1.0" encoding="utf-8"?>
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    android:orientation="vertical"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    >
	<TextView  
	    android:layout_width="fill_parent" 
	    android:layout_height="wrap_content" 
	    android:text="@string/hello"
	    />
	<Button android:text="notify" android:id="@+id/ButtonNotify" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
	</LinearLayout>

LatestEventActivity?.java

	public class LatestEventActivity extends Activity {
		
	    @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.notification);
	    }
	}

layout/notification.xml

	<?xml version="1.0" encoding="utf-8"?>
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    android:orientation="vertical"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    >
	<TextView  
	    android:layout_width="fill_parent" 
	    android:layout_height="wrap_content" 
	    android:text="表示!!!"
	    />
	</LinearLayout>

バイブレーション以外にも、音を鳴らしたり、LEDを光らせたり、バックライトを点灯させたりすることもできるようです。

android開発のご相談は、こちらまでお問い合わせください。

最終更新日: 2009-09-26 (土) 16:24:25 (2884d)

添付ファイル: fileandroid_notification_toast.jpg 577件 [詳細] fileandroid_notification_statusbar.jpg 534件 [詳細]

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP