かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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