簡単な実装とカスタムレイアウトを使った応用的な実装があるのでまとめてみた
簡単な実装
//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のサンプルコード
github.com
参考
- techbooster Notificationを使ってステータスバーに情報を表示する / Getting Started http://techbooster.jpn.org/andriod/ui/8843/
- Qiita AndroidでNotificationをまた実装するときのメモ http://qiita.com/roga7zl/items/4c9e1b62db1b427a9226
是非SNSで感想を教えて下さい 👇️
POST