Shell aracılığıyla Konum Hizmetlerini etkinleştirmek mümkün müdür?


14

Konum Servislerini (GPS veya Google NetworkLocation) ADB veya Terminal Emulator üzerinden etkinleştirmek mümkün müdür? Köklü bir telefondayım.

Ekstra Noktalar: Sistemle ilgili diğer ayarları da değiştirmek mümkün müdür?



2
@Izzy Bunun tamamen bir kopya olduğunu sanmıyorum.
Matthew

2
@Izzy ilgili değil. Bağlantı kurduğunuz sorunun konum hizmetleriyle ilgisi yoktur.
lorddev

1
@lorddev Hayır, açıkça belirtilmemiştir. Ancak konum hizmetleri için niyeti çağırmak için aynı kodu kullanabilirsiniz. Beni biraz şaşırtan şey, yorumumun "doğrudan isabet" i öneren ifadesidir (ve burada her ikiniz de haklısınız: tam olarak aynı değil). Söylemesi zor, yarım yıl sonra, o zamanlar aklımda ne vardı ...
Izzy

Yanıtlar:


12

Konum Servislerini (GPS veya Google NetworkLocation) ADB veya Terminal Emulator üzerinden etkinleştirmek mümkün müdür?

Komut:

adb shell settings put secure location_providers_allowed gps

nerede,

  • settingssettings.db(bir kısmı com.android.providers.settings) üzerinde değişiklik yapar
  • putanahtarı tablodaki location_providers_alloweddeğerle güncellemektir .gpssecure

Yukarıda belirtilen komut, Google'ın Konum Hizmetini etkinleştirmez. Etkinleştirmek için şu komutu verin:

adb shell settings put secure location_providers_allowed gps,network

Konum Servisleri'ni kabul etmeniz için bir açılır pencere gösterilir. Android 4.2.1'imde, GUI aracılığıyla veya input keyeventhizmeti her sıfırdan etkinleştirdiğimde katılıyorum .

                                                                    IMG: 4.2.1

Ancak, Android 5.0'ımda ayarları iletişim kutusuna kaydedebilirim ve komut yürütme işleri bir dahaki sefere mükemmel bir şekilde yapar.

                                                                    Img: 5.0

Lollipop olanlar gibi bazı cihazların üç Konum modu vardır ve yukarıda belirtilen komutta iletilecek ilgili değerler şunlardır:

  • Yüksek doğruluk: gps,wifi,networkveya gps,network(Wi-Fi'nin etkinleştirilmesini istemiyorsanız)
  • Pil tasarrufu: wifi,networkveya networksadece
  • Yalnızca cihaz: gps

Konum modunu devre dışı bırakmak için

adb shell settings put secure location_providers_allowed ' '

Sistemle ilgili diğer ayarları da değiştirmek mümkün müdür?

Görmek :

Ama zaten kullanarak büyük bir fikir verdim settings put.


Bunu başarmak mümkün mü, ancak harici bir bilgisayarın ADB'si üzerinden değil, cihazın konsolundan mı?
davide

1
Evet kesinlikle. Yine de cihazda root erişimi veya ADB kablosuz çalışıyor olması gerekir. Örnek olarak bu cevaba bir göz atın . Bir fikriniz olur.
Firelord

Bu Android 5'de çalışıyordu, ancak artık Android 6'da çalışmıyor. Köklü veya köksüz ayar değişmez ve sistemde yapılandırılanla aynı kalır. Muhtemelen location_providers_allowedkullanımdan kaldırılmasıyla bir ilgisi vardır ( developer.android.com/reference/android/provider/… ). Fikirler?
gw0

GPS işlevini açmak / kapatmak istiyorsanız, ayarlar Konum sayfasına gidebilir ve ardından anahtar düğmesini tıklayabilirsiniz. Bu işlem komut: ile de gerçekleştirilebilir adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS, ardından anahtar düğmesine tıklayın.
Eddy

13

Android 6.0 için

Kullanımı etkinleştirmek için:

GPS için: adb shell settings put secure location_providers_allowed +gps

Ağ için: adb shell settings put secure location_providers_allowed +network

Devre dışı bırakmak için:

KÜRESEL KONUMLAMA SİSTEMİ : adb shell settings put secure location_providers_allowed -gps

Ağ için: adb shell settings put secure location_providers_allowed -network


Bu benim için çalıştı, kabul edilen cevap değil.
TheMonkeyKing

Teşekkürler, işe yarıyor. Yine de bir satır adb komutu ile gps ve ağı etkinleştirebilir / devre dışı bırakabiliriz. Yüksek hassasiyetli lokasyon için ihtiyacım var. gps + ağ = yüksek doğruluk
Suban Dhyako

4

Android Konum Hizmeti farklı seçeneklerle gelir:

1) Yüksek Doğruluk: gps, network

Etkinleştirme: adb shell settings put secure location_providers_allowed +gps,network

Devre Dışı: adb shell settings put secure location_providers_allowed -gps,network

2) Yalnızca Telefon: gps

Etkinleştirme: adb shell settings put secure location_providers_allowed +gps

Devre Dışı: adb shell settings put secure location_providers_allowed -gps

3) Pil Tasarrufu: network

Etkinleştirme: adb shell settings put secure location_providers_allowed +network

Devre Dışı: adb shell settings put secure location_providers_allowed -network


0

location_providers_allowed Android 10 (API düzey 29) için artık çalışmıyor.

Bunun yerine, ayarlayabilirsiniz location_modeiçin LOCATION_MODE_HIGH_ACCURACY3 değeriyle:

adb shell settings put secure location_mode 3

NOT: Konum Modundaki dokümanlar belirtildiği gibi zaten kullanımdan kaldırıldığından > v29 muhtemelen işe yaramaz :

Bu sabit API düzeyinde 28. konum modunu kontrol ve değişikliklerin yoluyla olduğu için dinleme için tercih edilen yöntemler olarak kullanımdan kaldırıldı LocationManager#isLocationEnabled()ve LocationManager#MODE_CHANGED_ACTION.

Bu sabit ortadan kaybolduktan sonra, bunu kabuk yoluyla yapmanın programlı bir yolunun ne olacağını bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.