Tiêu đề tổng hợp lại. Cùng một câu hỏi là here. Đăng trên SO để xem tôi có thể nhận được trợ giúp nào không. Tôi cũng đã thực hiện một số almost minimal project để chứng minh sự cố mà tôi đang gặp phải, vì vậy các liên kết theo điểm tới đoạn mã được đề cập.Không nhận được cuộc gọi lại AppMessage khi gửi tin nhắn bên trong sự kiện kết nối bluetooth
Không có gì lạ mắt trên những gì tôi đang thực hiện:
- watchface tôi là notified rằng kết nối bluetooth với điện thoại đang gia tăng, sử dụng
.pebble_app_connection_handler
. - Trong đó bluetooth callback Tôi đã thiết lập, tôi send a message to the phone sử dụng
app_message_outbox_send()
. Khi kết nối BT là lên, tất nhiên. - Ứng dụng Android của tôi có số
BroadcastReceiver
lắng nghe những thông báo này và calls anIntentService
. - Điều này
IntentService
calculates the data, pushes it to the watch và sets itself to run again sau một thời gian.
Những gì tôi mong đợi:
- Khi kết nối BT đang gia tăng, xử lý kết nối được gọi.
app_message_outbox_send()
trả lại giá trị cho biết liệu bắt đầu tin nhắn có bất kỳ lỗi nào không. Thông thường, đây làAPP_MSG_OK
, nhưng có thể làAPP_MSG_BUSY
và tôi hoàn toàn nhận thức được điều đó.- Gọi lại tin nhắn ứng dụng (
app_message_register_inbox_received
và bạn bè) được gọi để cho biết liệu quá trình không đồng bộ gửi tin nhắn đến điện thoại có thực sự hoạt động hay không. Điều này được nêu trong số docs.
Những gì tôi đang nhìn thấy:
Các bước dự kiến xảy ra khi watchface được nạp, vì tôi kích hoạt bản cập nhật bằng tay. Tuy nhiên, khi cập nhật được kích hoạt bởi sự kiện kết nối BT, các bước 1 và 2 xảy ra dự kiến, nhưng không phải bước 3.
Điều này đặc biệt nghiêm trọng hơn khi tôi nhận được APP_MSG_OK
ở bước 2, vì tôi nên mong đợi mọi thứ trên chiếc đồng hồ đã hoạt động tốt và tôi nên chuẩn bị bản thân để nhận được một cái gì đó bên trong các cuộc gọi lại tin nhắn ứng dụng. Về cơ bản, tôi được các tài liệu yêu cầu chờ một cuộc gọi không bao giờ là.
Điều này xảy ra 100% thời gian.
Cảm ơn bạn đã được trợ giúp. Tôi có một giải pháp khác hoạt động, sử dụng đồng hồ để theo dõi khoảng thời gian cập nhật, nhưng tôi tin rằng giải pháp này cho phép tôi tiết kiệm pin hơn bằng cách sử dụng các tính năng Android gần đây.
“cho phép bạn xác định xem chiếc đồng hồ được kết nối với điện thoại di động app_ _Pebble bằng cách đăng ký vào 'pebble_app_connection_handler' [...] cũng cho phép bạn xác định xem chiếc đồng hồ Pebble có thể thiết lập kết nối với ứng dụng đồng hành _PebbleKit_ bằng cách đăng ký 'pebblekit_connection_handler' […] điều này sẽ trả về _true cho Android_ bất kỳ khi nào kết nối với _Pebble mobile app_ được thiết lập (vì tin nhắn PebbleKit được định tuyến thông qua ứng dụng Android)” Nguồn: https: //developer.pebble.com/docs/c/Foundation/Event_Service/ConnectionService/ – davidcesarino
Bên cạnh đó, chỉ cần nhận thấy rằng 'connection_service_peek_pebblekit_connection' trả về' true' ngay cả khi bluetooth i s tắt hoặc tôi rời khỏi đồng hồ bị ngắt kết nối trong ứng dụng Pebble. Chỉ 'connection_service_peek_pebble_app_connection' dường như có hiệu lực. – davidcesarino