スキップしてメイン コンテンツに移動

SO-01EのGPSを改善

端末購入とSIM

手頃な値段のSO-01E(中古)がAmazonで売られてたので購入。データ通信はOCNモバイルONEのSIMを指して運用を考えました。Runkeeperなどに使えたらと。商品が届きアームポーチ入れてみるとちょうど入ってこれはいい!と思ってたのですが、GPSの追跡が全然ダメでした。

Runkeeperで追跡しながら走ってみた

いつも行く5kmの距離を走ってみました。ある日は、6kmくらい走ってたことになっており、地図を見ると途中でコースを外れてました。またある日は、軌跡があっちへ行ったりこっちへ行ったりと11kmくらい走ってたことになってました。

原因を探る

中古なのでGPSの受信機が故障しているのかと不安を抱きながらいろいろ検索してみました。
元々GPSだけで位置を特定するのには時間がかかるようで、A-GPSというのを併用すると実用的な速さで位置を特定してくれるようです。(A-GPSのAはassistedから来ているそうです)。そのA-GPSはdocomo系端末だと、SPモードの回線でないと使えません。なので上記のようにOCNのSIMを指すと、A-GPSなしで位置を特定しようとするそうです。
というような話がこちらに書かれてます。
【要rooted】[Z]GPSの測位が遅いので解決してみた(SMSとA-GPSの関係) | エンジニアの休日
http://xins.club/lab/sms-agps/

gps.confにA-GPSのホストをドコモからGoogle版に書き換えると良いようです。なんとありがたいことにSO-01E用のgps.conf更新zipファイルを公開してくださってますm(_ _)m
【要rooted】[AX]GPSの測位が遅いので解決してみた | エンジニアの休日
http://xins.club/lab/sms-agps-so01e/

gps.conf書き換え


大まかな手順は以下のような形です。

  1. Android開発環境の導入 ※Android studioとかはいらないですが大まかに言うと
  2. 端末のroot取得
  3. CWMの導入・起動
  4. adbコマンドで上記zipファイルをインストール

注意事項として、

  • rootを取得したような端末はdocomoショップへ持って行ってもサポート対象外となるらしい
  • トラブっても元に戻すのは自力で

詳しい手順は下記をよく読んで自己責任でやればいけると思います。情報ありがとうございますm(_ _)m

キューブ実験室: 【Xperia AX SO-01E】数クリックroot取得
http://cubeundcube.blogspot.jp/2013/03/xperia-ax-so-01eroot.html

キューブ実験室: 【CWM】ClockworkMod-Based Recovery with cray_Doze Mod for Xperia GX/SX/AX/VL/Z v2.1
http://cubeundcube.blogspot.jp/2013/04/cwmclockworkmod-based-recovery-with.html

書き換えてみて

ドキドキしながら書き換えをやってみました。書き換え後は以下の設定を忘れず。

  • ☑ Google位置情報サービス



屋内でRunkeeperを起動してみると、相変わらず位置情報の検索中が終わるのが遅いですが、Runkeeper上の地図に現在地を表示するのは早くなりました。実際に走ってみてどうかというのはまた後日追記したいと思います。

余談

一方、SIMなしですがNexus 7は現在地特定がめちゃめちゃ速いです。SO-01Eなのか端末の個体差なのかハードウェア的に受信感度が弱い問題もありそうです。

追記:Runkeeper利用日記

  • 2015/05/16
    • 走り出す1時間前くらにRunkeeperを起動してみるとすぐにGPSをキャッチ(これはイケると思ってRunkeeperを閉じる)
    • 走る直前になって再びRunkeeperを起動。全くGPSをキャッチしなくなった(焦る)
    • 20分くらい端末を再起動させたりしてみたがGPSをキャッチしないので、強引に出走
    • いつもの5kmコースは0.8kmくらいという結果(ほぼ追跡できなかった)
    • 端末をPCに接続して、adbのコマンドで以下のようにしてgps.confを確認
      • adb shell 
      • su
      • cd /system/etc
      • cat gps.conf
        • ちゃんと SUPL_HOST=supl.google.com になっている
    • simの刺さってない Nexus 7や旧docomo端末でRunkeeper起動。すぐにGPSをキャッチ
      • SO-01EのGPS受信機(?)の精度が劣化していることが疑われる
    • 次回はGPSをキャッチしてから走り出してみる
  • 2015/05/17
    • 2時間くらい起動しっぱなしにしてみた
      • GPSをキャッチしない
      • とは言え、全くキャッチしないわけでなく、時たま電波良好の時もある
        • が、実用的と言い難いので今日は観察だけ
        • gps.confを書き換えた時はたまたま良かったのだろうか
    • こちらの記事を読んだ
    • そう言えばAndroid OSのバージョンがちょっと古いので書き換えがうまくいってないのではという懸念
      • キーボードの上にスマホを置いて放置すると電波をよく拾う。なぜなのか.....
  • 2015/05/18
    • gps.confの書き換え前と比べて、現在位置の特定は早くなってる気がする
    • ただ、Runkeeperのようなリアルタムな追跡になると追いついていない感じ
    • もう諦めかけてる

コメント

このブログの人気の投稿

Javaでprivateなfieldやmethodにアクセスする

JUnitでテストしてると、privateなフィールドにアクセスして、値を参照したりセットしたりしたくなるわけですが、よく使うのでメモしておきます。 例えば、次のような対象のクラスがあるとします。 public class ParentClass { private String hoge = "ParentClass!!"; public void dispMsg() { System.out.println("dispMsg:" + hoge); } private void privateDispMsg(String msg) { System.out.println("dispMsg:" + msg); } }

GolangでWindows GUIアプリケーション

GUIアプリ作成の前提 社内ツールとしてexeで配布 開発環境はGoLandを使う 社内ツールとしてexeを配布ということであれば、Visual StudioでC#による開発だと思います。しかしながら、Go言語を習得したいのと、GoLandの補完機能が便利で、Android Studio使っていたこともあり、とっつきやすいという点からGo縛りでGUIアプリケーションを考えたいと思います。 lxn/walk Windows application library kit for Go. Windows向けしか考えていないので、まずこのライブラリなのですが、ボタンやコンボボックスが思ったように並ばなかったり、手軽にイメージボタンを配置したりなど、簡単にレイアウトを変更できない課題に直面しました。レイアウト作成だけで時間を取られてしまいます。そう言えば、Androidアプリ開発のときは、XMLでデザイン部分を切り離してたのを思い出して、今回の調査の運びとなりました。 fyne-io/fyne Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. walkと比べると、クロスプラットフォームで作成できるのですが、こちらもコードの中にデザインを書いていく形でした。 therecipe/qt therecipe/qt allows you to write Qt applications entirely in Go or JavaScript. Qt Creatorなるものがあるようで、デザイン部分を切り離せる印象はあるものの、最新のPCでもビルドに時間がかかるようで、学習コストもかかるという記事を見かけて断念しました。 どうしたものかとツイートしましたら、下記のようにご助言をいただいた。 同じ課題に対し色々試した結果、PWAのフルキャッシュドに落ち着いた。中身はGo+WASMで。 https://t.co/e60whDTV16 — のぼのぼ📡 (@nobonobo) July 21, 2020 PWA 早速調べてみました。Googleが進めているプロジェクトで、ネイティブアプリのよ

Eclipseの高速化メモ

Eclipseが重いと一言に言っても、いろいろな工程での話があると思いますが、過去記事のなども含めてこの記事にピックアップしておきたいと思います。以下はWindows環境での話です。