Java 向Pebble发送通知

Java 向Pebble发送通知,java,android,pebble-watch,pebble-sdk,Java,Android,Pebble Watch,Pebble Sdk,我正试图向我的鹅卵石手表发送通知。我使用的代码基本上是: public void sendpowble(字符串标题、字符串正文){ 最终意图i=新意图(“com.getpebble.action.SEND_通知”); 最终映射数据=新HashMap(); 数据输入(“标题”,标题); 数据。放置(“主体”,主体); 最终JSONObject jsonData=新JSONObject(数据); 最后一个字符串notificationData=new JSONArray().put(jsonData

我正试图向我的鹅卵石手表发送通知。我使用的代码基本上是:

public void sendpowble(字符串标题、字符串正文){
最终意图i=新意图(“com.getpebble.action.SEND_通知”);
最终映射数据=新HashMap();
数据输入(“标题”,标题);
数据。放置(“主体”,主体);
最终JSONObject jsonData=新JSONObject(数据);
最后一个字符串notificationData=new JSONArray().put(jsonData.toString();
i、 putExtra(“messageType”、“PEBBLE_ALERT”);
i、 putExtra(“发送方”、“测试”);
i、 putExtra(“notificationData”,notificationData);
日志d(“测试”,“发送到Pebble:”+通知数据);
发送广播(一);
}
我在LogCat中收到消息,但手表上没有通知。这个过程似乎很简单,有没有什么明显的遗漏?还是文档不完整

编辑:显而易见的问题:

  • 是的,手表是连着的
  • 是,我启用了第三方通知

    • 好吧,这是我的问题:

      默认情况下,Pebble应用程序仅在手机屏幕关闭时向手表发送通知。为了便于开发,当手机通过USB连接时,我总是让屏幕处于活动状态。因此,解决方案是:在Pebble应用程序中启用“始终发送通知”选项


      也许这会让其他人头疼。

      好吧,这是我的问题:

      默认情况下,Pebble应用程序仅在手机屏幕关闭时向手表发送通知。为了便于开发,当手机通过USB连接时,我总是让屏幕处于活动状态。因此,解决方案是:在Pebble应用程序中启用“始终发送通知”选项


      也许这会让其他人头疼。

      我想你需要在清单文件中声明
      com.getpebble.action.SEND\u NOTIFICATION
      ,不确定,只是想…如果我理解正确,只有接收类必须这样做。我想你需要在清单文件中声明
      com.getpebble.action.SEND\u NOTIFICATION
      ,不确定,只是想…如果我理解正确,只有接收类才能这样做。
      public void sendPebble(String title, String body) {
          final Intent i = new Intent("com.getpebble.action.SEND_NOTIFICATION");
      
          final Map<String, String> data = new HashMap<String, String>();
          data.put("title", title);
          data.put("body", body);
      
          final JSONObject jsonData = new JSONObject(data);
          final String notificationData = new JSONArray().put(jsonData).toString();
          i.putExtra("messageType", "PEBBLE_ALERT");
          i.putExtra("sender", "Test");
          i.putExtra("notificationData", notificationData);
      
          Log.d("Test", "Sending to Pebble: " + notificationData);
          sendBroadcast(i);
      }