Skip to content

Instantly share code, notes, and snippets.

@salexkidd
Last active December 27, 2015 23:49
Show Gist options
  • Save salexkidd/7408964 to your computer and use it in GitHub Desktop.
Save salexkidd/7408964 to your computer and use it in GitHub Desktop.
Nike FuelBand SEがiPhone5/5s とつながらないので泣きながら妄想していじりまわしたらやっとつながったので感想的な素敵なサムシング

Nike FuelBand SE が iPhone とつながらない件について

はじめに

情報がないからもうすべて妄想+憶測 + 何をするにしても自己責任!! + エンディングまで(つながるまで)泣くんじゃない! あと、調査が必要そうなところは追っていきたいけど時間がない

結論から先に

最後にもう一度書きますが、簡単になつながりませんっていうか3日かかりました。 もう一生無理なんじゃないかと思ったら「見つかりました!」と唐突につながるという。

やったことは

  • とにかくアプリを削除してログイン・ログアウトをひたすら行う
  • 工場出荷時に戻す

ことです。どうも、Nike+のサイト自体が持つ我々のFuelBandの情報がトチ狂ってるんじゃないかと思います。

(キャッシュに駄目な情報がはいってしまう等)

なので、現状の施策としては「根気強く」しかないと思われます。

はじめに

FuelBand SE を購入。 しかし、iPhone5s に FuelBand SE がつながらない。 さて、なぜ iPhone と sync しないかを考えてみる。

1.従来の Bluethooth 機器とつなぎ方が違う。

最初、iOS 設定画面を見て「でてこねぇ!」って騒いでいたが、元々接続方法が違う。 接続方法は以下のとおりである。

  • AppStore から Nike + FuelBandをダウンロード & 立ち上げる
  • アプリ上から NikePlus ログインすると、「デバイスの検索中」画面が出て探す。
  • つながる!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

ようは、「従来の iOS の設定画面ではなく、アプリからデバイスが検索可能になっている」のがポイント。

2.なぜデバイス検索中で見つからないのか考える

何度ログインしても、「デバイスが見つかりません」とでる・・なぜだ? さて、ここでひとつ疑問が浮かぶ。

自分の腕にはまってる FuelBand SE は、俺の FuelBand SE であるかをiOSはどう知るのか

という点。ようは、「従来のようにランダムに生成された PINコードをいれたわけでもないのにどうやって俺のものであるかを証明するか」というのがポイント。

コレがないと近くにいる人のFuelBand SEとつながっちゃうし、その後名前変更やら目標変更とかセキュリティリスクにもなるよねっていう。

ここで考えられるのは、

  • FuelBand はPCに接続 & 専用ソフトを使わないと電源すら入らない
  • 初回接続時(または工場出荷状態に戻した場合)はアカウントのセットアップが必要となる

以上から推測するに、

PCとSyncした際に、つないだFuelBand SEの情報をNikePlusのサイトに送信、その際にログインしているアカウントにFuel Bandの情報を結びつける。

となっていると考えられる。なので、

Nike+Fuelbandアプリを起動後&ログイン。ログインすると、そのアカウントに結びついているFuelBand SEの情報がダウンロードされる

はずである。あとは、

BlueTooth LE の電波に乗ってくる何らかの情報(製造番号, 名前, その他の情報)のどれかを利用し「近くにこのアカウントに結びついてるデバイスがある!」

ということがわかるはず。色々考えたがこの方式しか考えつかなかった 。

3.じゃあどうしたらつながんだよ

上の説が正しいのならば、以下のように問題を切り分けられる

  1. Bluetooth LEのチップ|ドライバ|ソフトウェアのどれかがトチ狂っている(手が出せない)
  2. Nike+FuelBandのアプリ自体がトチ狂ってる(手が出せない)
  3. アカウントに結びついているFuelBand SEの情報が壊れている(修正可能)
  4. Nike+FuelBandアプリがダウンロードしたFuelBandの情報が壊れている(修正可能)

となる。まず、A,Bについてはもうどうしようもない。C,Dについてはまだなんとかなる。

色々初期出荷状態に戻したりいじりまわしていると現在、自分のiPhone 5sと5にて相違がでた。(繋がっていない状態でも、デバイスの情報は見ることができるので、そこから確認)

  • iPhone 5Sには「自分の名前(名: 自分でつけた)」のFuelBand SEが「存在するけどつながってない」と表示された
  • iPhone 5には「自分の苗字(姓:やはり自分でつけた)のFuelBand SEが「存在するけどつながってない」と表示された

ようは、CかDが問題になってる可能性が非常に高い。

Nike+Fuelbandアプリが取得するFuelBandの情報がおかしいか、取得した情報になんかしちゃってるかどっちかであるとかんがえられる

なので、多分Nike+のサイト上にある「ユーザーが持っているデバイス一覧リスト」がDB、キャッシュ、その他の問題により 整合性を失っている状態 or それを修復している状態にあると考えられる (通常なら最新の更新情報である1つがSyncされなくちゃおかしいので + やっと自分のFuelBandをiOSが認識してくれた)

結論

ぶっちゃけますが、簡単にはiOSとFuelBand SEはつながらない。何度もログイン・ログアウトを繰り返す&デバイス情報を更新して送りつけてみるを繰り返し、キャッシュ情報やDBの整合性を乗り越える必要がありそうだ・・・

もちろん、これが正しいかもしれないし、間違えている可能性すらあるので、自己責任で色々頑張る必要がある

果たして、Nike + FuelBand SEの立ち上がりは最悪だけど、非常に頑張っていただきたい。

@salexkidd
Copy link
Author

http://www.atmarkit.co.jp/fsmart/articles/ios_sensor04/03.html

上記の記事を参考に、Bluetooth LE(4.0ですな)が飛ばしている情報をつかんでみた。
ちょっと書き換える必要あるけど、デバイスの情報がいくつかとれたよ。
これと

  • USBから取得したデータ
  • Nike+のソフトウェアがHTTPSで叩きに行ったAPIのリクエストデータ
  • iPhoneがHTTPSで叩きに行ったAPIのレスポンスデータ

を見比べれば、最悪「何が原因であるか」をはっきりさせられそうではあるが、面倒だ!

@salexkidd
Copy link
Author

多分予想では、Nike+の返すデバイス一覧のAPIがトチ狂ってると予想してる(古いものとかデータが壊れてたりとか)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment