Playground

Androidで通知バーに表示する

この記事は約5分で読めます。
スポンサーリンク

簡単な実装とカスタムレイアウトを使った応用的な実装があるのでまとめてみた

スポンサーリンク

簡単な実装

//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にも上げたので見てみてください

Momijinn/SampleNotificationListenerService
NotificationListenerServiceのサンプルコード. Contribute to Momijinn/SampleNotificationListenerService development by creating an account on GitHub.

参考

コメント

タイトルとURLをコピーしました