シェル経由で位置情報サービスを有効にすることはできますか?


14

ADBまたはターミナルエミュレータを介して位置情報サービス(GPSまたはGoogle NetworkLocation)を有効にすることは可能ですか?私は根ざした電話にいます。

余分なポイント:他のシステム関連の設定を変更することもできますか?



2
@Izzyそれは完全に重複しているとは思わない。
マシューリード

2
@Izzyは関係ありません。リンクした質問は、位置情報サービスとは関係ありません。
ロードデブ

1
@lorddevいいえ、明示的に言及されていません。ただし、同じコードを使用して、位置情報サービスのインテントを呼び出すことができます。私を少し混乱させているのは、私のコメントのフレージングです。これは、「直接ヒット」を示唆しています(そして、ここであなたは両方とも正しいです:それはまったく同じではありません)。私は当時考えていたもの、半年後、言うのは難しい...
イジー

回答:


12

ADBまたはターミナルエミュレータを介して位置情報サービス(GPSまたはGoogle NetworkLocation)を有効にすることは可能ですか?

コマンドは次のとおりです。

adb shell settings put secure location_providers_allowed gps

どこ、

  • settingssettings.db(の一部com.android.providers.settings)に変更を加えます
  • putテーブルのlocation_providers_allowedgpsでキーを更新することsecureです。

前述のコマンドでは、Googleの位置情報サービスは有効になりません。同様に有効にするには、次のコマンドを発行します。

adb shell settings put secure location_providers_allowed gps,network

位置情報サービスに同意するポップアップが表示されます。Android 4.2.1では、GUIを使用するかinput keyevent、最初からサービスを有効にするたびに同意する必要があります。

                                                                    IMG:4.2.1

ただし、私のAndroid 5.0では、ダイアログの設定を保存でき、コマンドを実行すると、次回から完全に完了します。

                                                                    IMG:5.0

Lollipopなどの一部のデバイスには3つのロケーションモードがあり、前述のコマンドで渡される関連する値は次のとおりです。

  • 高精度:gps,wifi,networkまたはgps,network(Wi-Fiを有効にしたくない場合)
  • バッテリー節約:wifi,networkまたはnetworkのみ
  • デバイスのみ: gps

ロケーションモードを無効にするには

adb shell settings put secure location_providers_allowed ' '

他のシステム関連の設定を変更することもできますか?

見る :

しかし、私はすでにを使用して大きなアイデアを与えましたsettings put


外部コンピューターのADBではなく、デバイスのコンソールから同じことを実現することは可能でしょうか?
デビッド

1
そのとおり。ただし、デバイスでルートアクセスまたはADBワイヤレスを実行する必要があります。例としてこの答えを見てください。あなたはアイデアを得るでしょう。
消防士

これは以前はAndroid 5で動作していましたが、Android 6では動作しません。rootの有無にかかわらず、設定は変更されず、システムで設定されたままです。location_providers_allowed非推奨になっていることと関係がある可能性があります(developer.android.com/reference/android/provider/…)。アイデア?
gw0

GPS機能をオン/オフするだけの場合は、設定の[場所]ページに移動し、[切り替え]ボタンをクリックします。この操作は次のコマンドでも実行できます:adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS、次に切り替えボタンをクリックします。
エディ

13

Android 6.0の場合

使用を有効にするには:

GPSの場合: adb shell settings put secure location_providers_allowed +gps

ネットワーク用: adb shell settings put secure location_providers_allowed +network

無効にするには:

GPS : adb shell settings put secure location_providers_allowed -gps

ネットワーク用: adb shell settings put secure location_providers_allowed -network


これは受け入れられた答えではなく、私のために働いた。
マットD

おかげで、それは動作します。とにかく、1行のadbコマンドでgpsとネットワークを有効/無効にできますか?高精度のロカトンに必要です。gps +ネットワーク=高精度
Suban Dhyako

4

Androidロケーションサービスにはさまざまなオプションがあります。

1)高精度: gps, network

有効にする: adb shell settings put secure location_providers_allowed +gps,network

無効にする: adb shell settings put secure location_providers_allowed -gps,network

2)電話のみ: gps

有効にする: adb shell settings put secure location_providers_allowed +gps

無効にする: adb shell settings put secure location_providers_allowed -gps

3)バッテリー節約: network

有効にする: adb shell settings put secure location_providers_allowed +network

無効にする: adb shell settings put secure location_providers_allowed -network


0

location_providers_allowed Android 10(APIレベル29)では動作しなくなりました。

代わりに、設定することができますlocation_modeLOCATION_MODE_HIGH_ACCURACY3の値を持ちます:

adb shell settings put secure location_mode 3

注:ロケーションモードに関するドキュメントで言及されいるように、これは既に非推奨であるため、おそらくv29では機能しません。

この定数は、APIレベル28で廃止されました。ロケーションモードを確認し、変更をリッスンするための推奨されるメソッドは、LocationManager#isLocationEnabled()およびを介した方法ですLocationManager#MODE_CHANGED_ACTION

この定数が消えると、シェルを介してこれを行うプログラム的な方法がどうなるかわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.