かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Android Wearで通知に丸いボタンをつける

Android Wearらしいあの丸いボタンのつけ方です。

NotificationのextendメソッドにNotification.WearableExtenderを突っ込みます。このWearableExtenderに対して、addActionメソッドでNotification.Actionを渡します。Notification.Actionには、アイコンと、文字列と、PendingIntentを渡す感じでOKです。

早速コード。

PendingIntent i = PendingIntent.getActivity(this, 0, new Intent(this, MyActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder b = new Notification.Builder(this)
        .setContentTitle("title")
        .setContentText("text")
        .setSmallIcon(R.drawable.ic_launcher)
        .extend(new Notification.WearableExtender()
            .addAction(new Notification.Action(R.drawable.ic_launcher, "launch", i)));
NotificationManager nm = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(0, b.build());

実行するとこんな感じの通知が出る。

f:id:okazuki:20140801205457p:plain

横にスライドするとAndroid Wearっぽい丸いボタンが。ってかエミュレータ画面狭いのかはみ出てますね…。実機では、画面内に収まってるのに。

f:id:okazuki:20140801205559p:plain