簡単な実装とカスタムレイアウトを使った応用的な実装があるのでまとめてみた
簡単な実装
//TODO クリックされたIntentに飛ばす用 Intent intent = new Intent(getApplicationContext(), MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); //TODO 簡単なやりかた NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); builder.setSmallIcon(R.mipmap.ic_launcher); builder.setContentTitle("Title"); builder.setContentText("text"); builder.setSubText("Sub text"); builder.setContentInfo("Info"); builder.setWhen(System.currentTimeMillis()); //クリックされたらIntentへ飛ばす builder.setContentIntent(pi); //バイブレーションがなる //long[] vibrate = {0, 100, 300, 1000}; //builder.setVibrate(vibrate); //LEDライト LEDは画面がOFFの時に出力してる //builder.setDefaults(Notification.DEFAULT_LIGHTS); //この行を削除すると点滅しつづける。 //builder.setLights(Color.BLUE, 5000, 10); //発光色,発光時間,消灯時間 //通知の音とバイブ builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); builder.setAutoCancel(true);//クリックで通知バーから削除 NotificationManagerCompat manager = NotificationManagerCompat.from(getApplicationContext()); manager.notify(NOTIFICATION_MINIMUM_ID, builder.build());
カスタム実装
//TODO カスタムレイアウト NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); builder.setSmallIcon(R.mipmap.ic_launcher); RemoteViews customView = new RemoteViews(getPackageName(), R.layout.custom_notificationlistener); customView.setTextViewText(R.id.textview_text, "TEST"); builder.setContent(customView); NotificationManagerCompat manager = NotificationManagerCompat.from(getApplicationContext()); manager.notify(NOTIFICATION_CUSTOMLAYOUT_ID, builder.build());
R.layout.custom_notificationlistener
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textColor="#000000" android:textSize="36sp" /> </RelativeLayout>
一応GITにも上げたので見てみてください
GitHub - Momijinn/SampleNotificationListenerService: NotificationListenerServiceのサンプルコード
NotificationListenerServiceのサンプルコード. Contribute to Momijinn/SampleNotificationListenerService development by creating an account on GitHub.
参考
- techbooster Notificationを使ってステータスバーに情報を表示する / Getting Started http://techbooster.jpn.org/andriod/ui/8843/
- Qiita AndroidでNotificationをまた実装するときのメモ http://qiita.com/roga7zl/items/4c9e1b62db1b427a9226
コメント