• pebbleKit is not notification based, but intent based, it was made by pebble not so much for notifications, but for communication to companion apps running on the phone (e.g. using the watch as a camera viewer or adding pebble support to your existing apps)

    Basically gadgetbridge will listen to pebblekit broadcast intents which have an application specific payload and an UUID per app. On the watch the applications will listen to their own UUIDs. It also works the other way around, an app on the watch sends a message to gadgetbridge with its UUID and gadgetbridge will broadcast an intent and a android app will react on messages with its own UUID.


    Basically what I did was modify the existing pebbleKitSupport in gadgetBridge to support bangle

    basically it does something like this (pebblekit always packs the data in a array, guess it can just as well be without it) For now I just implemented the send to bangle part

         int transaction_id = intent.getIntExtra("transaction_id", -1);
         uuid = (UUID) intent.getSerializableExtra("uuid");
         String jsonString = intent.getStringExtra("msg_data");
         LOG.info("json string: " + jsonString);
         try {
                JSONArray jsonArray = new JSONArray(jsonString);
               mBangleDevice.uartTxJSON("pebble kit app send", new JSONObject().put("t", "pebbleKit").put("uuid", uuid).put("message", jsonArray));
                 } catch (JSONException e) {
                           LOG.error("failed decoding JSON", e);

    OsmAnd has pebbleKit support so that would work (though I want some more info as it provides) Google maps won't work as that doesn't have pebbleKit support

    OsmAnd doesn't add images for turns, it has a defined a set of 14 turn types you need to render yourself (it can also give the angle of the next turn)


Avatar for edb @edb started