みんからきりまで

きりみんです。

Androidの通知を全部Slackに流してPCでも検知する

ずっと家にいるとあまりスマホを見ないのでLINEとかメールとかゲームの通知とかわりと気付かなくて面倒な事がある。
僕は一人Slackチームを作ってメモなどに利用しているので、そこにスマホの通知を全部流せたら便利だと思った。

IFTTTでそういうのあるかなと思ったけどパッと見た感じ無さそうだった。
サービスごとに個別で頑張ってもいいんだけどそれも面倒なのでもう全部流したい。
探せばそういうアプリありそうだけどよく分からない個人アプリに個人情報垂れ流すのも怖いので自分で作った。

通知の取得方法はこちらを参考にした。

techbooster.org

あとはSlackのWebhookに取得した内容をどんどん投げるだけ。
だいたいこんな感じ。自分が使うだけなので超適当。

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
        if(sbn.isOngoing()){
            return;
        }
        String message = sbn.getPackageName() + "\n" + sbn.getNotification().tickerText;
        try {
            post("https://hooks.slack.com/services/xxxxxxxxxxxxxxx", "{\"text\":\"" + message + "\"}");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    String post(String url, String json) throws IOException {
        RequestBody body = RequestBody.create(JSON, json);
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();
        Response response = client.newCall(request).execute();
        return response.body().string();
    }

で、こうなった。

https://i.gyazo.com/c16168a421110c9afcb419d30e40f4a4.png

とりあえずLINEに気付かない事はなくなりそう。
ただ、なんかアプリによって連続で取得したりテキストが取得出来なかったりするのでイマイチ。
Twitter公式アプリがツイートする度に通知出したりするのでブラックリスト作った方が良さそう。

関係ないけどAndroid Wearはもう一年くらい使ってない。