droidroid

android好きのandroidブログ コメント大歓迎です

Nexus5が欲しいです・・・
基本的に転載・リンクはフリーですが、一声かけてくださるとうれしいです。。

Android4.4+でのGPSの動作

あけましておめでとうございます。
今年もよろしくお願いします。

さて新年最初の記事になります。
今回は今更感が半端ないですが、タイトルの通りAndroid4.4+でのGPSの動作についてです。

年末年始になんとなくNexus4を触っている際に、Google Mapを起動しました。
私は「Tasker」で

Map起動→GPS on

というプロファイルを組んでいるので
この状態で現在地を確認することができます。

・・・のはずが、現在地の取得に長い時間がかかり
なかなか現在地を特定できません。

おかしいな~と思いつつも、原因がはっきりしませんでした。

そこで詳しく調べてみると、Android4.4以降でGPSに関して変更があることを知りました。(今更)
さらにTaskerでGPSをonにするプロファイルの中で使用している
「SecureSettings」というアプリでも設定が必要なことが分かりました。。。
なんと情けない…


というわけで、1つずつ見て行きましょう!

・Android4.4+でのGPSについて

f:id:t-fuji1110:20140107210202p:plain

Android4.3ではGPSは単にon/offだけでしたが
Android4.4以降ではon/offだけでなく3つのモードが搭載されています。

高精度・バッテリー節約・端末のみの3つです

高精度=GPS+WiFi+モバイルネットワーク
バッテリー節約WiFi+モバイルネットワーク
端末のみ=GPSのみ

f:id:t-fuji1110:20140107210133p:plain

つまりGPSのon/offに加えて、モードの選択も必要になってくるということです。


・TaskerでのGPS制御方法

さて、ここまでいろいろ調べてきてわかった(気づいた)のですが
Android4.1以降では「SecureSettings」でインストールする「SecureSettingsHelper」ではなく
「HelperAlternative」が必要な場面があるようです。(画像下部)

f:id:t-fuji1110:20140107211723p:plain

さっそくこの「HelperAlternative」を導入しました。
これで以前と同様にTaskerが機能してくれます。
・・とその前に、もうひとつだけ設定が必要になります。

上述したGPSのon/offとモードの選択ですが

・GPSは常にon
・(Taskerでの動作は)高精度とバッテリー節約を切り替える

という形になります。
つまり、GPSをoffにしてしまうと、Taskerが動作しません。
気をつけましょう。


なんだかGPSで常に監視されている感じがしてイヤですねw
そういう方は、GPSを使用したアプリの履歴が出るので
App opsやApp Settingsなどで、現在地情報の権限を削ってあげればいいでしょう。


少々複雑ですが、GPS機能についての記事でした。