Pebbleアプリ開発メモ

Pebbleアプリ、Watchface開発のメモを残していきます。

【Pebble】ジェスチャー(振られたこと)を感知する

f:id:shotsep:20150923140338g:plain

http://apps.getpebble.com/en_US/application/55f22f9c5521a8c25e000038

現在リリースしているWatchface「Most Visible Analog」は一定時間ごとに現在の時間/直近12時間程度のサマリーを切り替えて表示しています。

また、サマリーに関しては文字数が多いためHTMLでいうところのマーキーのような表示方法を採用しています。

そのせいか電池の持ちが悪い為、切り替えを一定時間毎ではなく時計が振られた時に行うような実装にしてみました。

※電池持ちを確認してからストアにリリースします。

実行結果

f:id:shotsep:20150923214738p:plain

予想はしていましたが、やっぱりセンサーアクティブにしてたら電池が鬼のように減りますね。

違う方法で電池持ち改善できないか考えてみます。


static void handle_accel(AccelData *accel_data, uint32_t num_samples) {
  // do nothing
}

static void timer_callback() {

  AccelData accel = {false, 0, 0, 0, 0};
  accel_service_peek(&accel);
  layer_mark_dirty(window_get_root_layer(window));
  
  //APP_LOG(APP_LOG_LEVEL_DEBUG, "x:%d y:%d z:%d", accel.x, accel.y, accel.z);
  if(abs(accel.x) + abs(accel.y) + abs(accel.z) > 3100) {
    APP_LOG(APP_LOG_LEVEL_DEBUG, "shaken");
  } 
}

static void someMethod() {
    accel_data_service_subscribe(0, handle_accel);
    app_timer_register(timer_frequency, timer_callback, NULL);
}

3100のところを変えると感度の設定が出来ます。