- UID
 - 430
 
- 麦力
 - 405 
 
- 注册时间
 - 2015-12-18
 
- 最后登录
 - 2018-8-12
 
 
 
 
 
  
- 精华
 - 1
 
- 阅读权限
 - 100
 
- 在线时间
 - 44 小时
 
 
  
 
 | 
 
 
 
之前蓝牙状态一直说os未支持,直到前几天Timex表盘发布时实现了蓝牙状态的功能,其作者diablozhu开源了这个代码。 
经他提醒后来发现: 
enum BleStatus{ 
BLE_STATUS_ADVERTISING, // 广播 
BLE_STATUS_CONNECTED, // 被连接 
BLE_STATUS_USING, // 使用中(发送数据中) 
BLE_STATUS_CLOSE // 该状态蓝牙被关闭 (这个在测试中好像无论什么状态总是返回真,不知哪里出了问题。) 
};  
 
 
 
晚上我也研究一差不多一个通宵了,前期一直没搞定,后来直接使用了diablozhu的部分代码,并作一两句一两句增加代码、安装测试的方式,终于完成了多显表盘的蓝牙状态功能。后来发现蓝牙状态通讯时也是一个状态,参数中有一个断开,但用了断开参数好像决断不准,无论连接状态如何,断开总是true。还有一些函数或参数不支持,有些能编译但安装不了,有些也不能编译。虽然后来也列了一个可用函数列表,但总之现在调试代码还是非常麻烦。 
 
最后使用了以下代码: 
 
- /*蓝牙状态更改*/
 
 -         GBitmap bitmap_ble_con;
 
 -         GBitmap bitmap_ble_discon;
 
 -         GRect frame_ble = {{MWD_BLE_ORIGIN_X, MWD_BLE_ORIGIN_Y}, {MWD_BLE_SIZE_H, MWD_BLE_SIZE_W}};
 
 -         res_get_user_bitmap(RES_BITMAP_BLE_CONNECTED, &bitmap_ble_con);
 
 -         res_get_user_bitmap(RES_BITMAP_BLE_DISCONNECTED, &bitmap_ble_discon);
 
 -         LayerBitmap layer_bitmap_ble_con = { bitmap_ble_con,frame_ble,GAlignCenter };
 
 -         LayerBitmap layer_bitmap_ble_discon = { bitmap_ble_discon,frame_ble,GAlignCenter };
 
 -         enum BleStatus ble_sta;
 
 -         ble_sta = maibu_get_ble_status();  //获取蓝牙状态
 
 -         if (ble_sta != BLE_STATUS_CONNECTED && ble_sta != BLE_STATUS_USING) {
 
 -                 if (g_official_bledis == 0)
 
 -                 {
 
 -                 P_Layer layer_ble_new = app_layer_create_bitmap(&layer_bitmap_ble_discon);
 
 -                 app_layer_set_bg_color(layer_ble_new, GColorBlack);
 
 -                 g_app_mwd_ble_layer_id = app_window_replace_layer(p_window, p_ble_layer, layer_ble_new);
 
 -                 app_window_update(p_window);
 
 -                 g_official_bledis = 1;
 
 -                 maibu_service_vibes_pulse(VibesPulseTypeShort,1); //调用短振动1次,本想用一次长振动,当时测试无效。
 
 -                 }
 
 -         }
 
 -         else if (ble_sta = BLE_STATUS_CONNECTED) {
 
 -                 if (g_official_bledis == 1)
 
 -                 {
 
 -                 P_Layer layer_ble_new = app_layer_create_bitmap(&layer_bitmap_ble_con);
 
 -                 app_layer_set_bg_color(layer_ble_new, GColorBlack);
 
 -                 g_app_mwd_ble_layer_id = app_window_replace_layer(p_window, p_ble_layer, layer_ble_new);
 
 -                 app_window_update(p_window);
 
 -                 g_official_bledis = 0;
 
 -                 }
 
 -         }
 
  复制代码 
 
 |   
 
 
 
 |