เป็นไปได้หรือไม่ที่จะเปิดใช้งานบริการตำแหน่ง (GPS หรือ Google ตำแหน่งเครือข่าย) ผ่าน ADB หรือ Terminal Emulator? ฉันใช้โทรศัพท์รูท
คะแนนพิเศษ: สามารถเปลี่ยนการตั้งค่าอื่น ๆ ที่เกี่ยวข้องกับระบบได้หรือไม่
เป็นไปได้หรือไม่ที่จะเปิดใช้งานบริการตำแหน่ง (GPS หรือ Google ตำแหน่งเครือข่าย) ผ่าน ADB หรือ Terminal Emulator? ฉันใช้โทรศัพท์รูท
คะแนนพิเศษ: สามารถเปลี่ยนการตั้งค่าอื่น ๆ ที่เกี่ยวข้องกับระบบได้หรือไม่
คำตอบ:
เป็นไปได้หรือไม่ที่จะเปิดใช้งานบริการตำแหน่ง (GPS หรือ Google ตำแหน่งเครือข่าย) ผ่าน ADB หรือ Terminal Emulator?
คำสั่งคือ:
adb shell settings put secure location_providers_allowed gps
ที่ไหน
settings
หากว่าทำให้เกิดการเปลี่ยนแปลงเข้าsettings.db
(ส่วนหนึ่งของcom.android.providers.settings
)put
คือการปรับปรุงที่สำคัญlocation_providers_allowed
ที่มีค่าในตารางgps
secure
คำสั่งดังกล่าวจะไม่เปิดใช้งานบริการตำแหน่งของ Google ในการเปิดใช้งานให้ใช้คำสั่ง:
adb shell settings put secure location_providers_allowed gps,network
คุณจะเห็นป๊อปอัปเพื่อยอมรับบริการตำแหน่ง ใน Android 4.2.1 ของฉันฉันต้องยอมรับผ่าน GUI หรือinput keyevent
ทุกครั้งที่เปิดใช้บริการตั้งแต่เริ่มต้น
อย่างไรก็ตามใน Android 5.0 ของฉันฉันสามารถบันทึกการตั้งค่าในกล่องโต้ตอบและการดำเนินการคำสั่งทำให้สิ่งต่าง ๆ สมบูรณ์แบบในครั้งต่อไป
อุปกรณ์บางอย่างเช่น Lollipop มีโหมดสถานที่สามแห่งและค่าที่เกี่ยวข้องที่จะส่งผ่านในคำสั่งดังกล่าวจะเป็น:
gps,wifi,network
หรือgps,network
(หากคุณไม่ต้องการเปิดใช้งาน Wi-Fi)wifi,network
หรือnetwork
เท่านั้นgps
adb shell settings put secure location_providers_allowed ' '
เป็นไปได้ไหมที่จะเปลี่ยนการตั้งค่าอื่น ๆ ที่เกี่ยวข้องกับระบบ?
ดู:
แต่ฉันได้ใช้ความคิดขนาดใหญ่settings put
แล้ว
location_providers_allowed
การเลิกใช้งาน ( developer.android.com/reference/android/provider/ ...... ) ไอเดีย?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
จากนั้นคลิกปุ่มสวิตช์
สำหรับ Android 6.0
วิธีเปิดใช้งาน:
สำหรับ GPS: adb shell settings put secure location_providers_allowed +gps
สำหรับเครือข่าย: adb shell settings put secure location_providers_allowed +network
วิธีปิดใช้งาน:
จีพีเอส : adb shell settings put secure location_providers_allowed -gps
สำหรับเครือข่าย: adb shell settings put secure location_providers_allowed -network
บริการระบุตำแหน่งของ 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
location_providers_allowed
ใช้งานไม่ได้กับ Android 10 (API ระดับ 29)
แต่คุณสามารถตั้งค่าlocation_mode
ที่จะLOCATION_MODE_HIGH_ACCURACY
มีมูลค่า 3:
adb shell settings put secure location_mode 3
หมายเหตุ:อาจจะไม่ทำงาน> v29 เช่นนี้เป็นแล้วเลิกใช้เป็นเอกสารในโหมดสถานที่กล่าวถึง:
อย่างต่อเนื่องนี้ได้รับการคัดค้านในระดับ API 28. วิธีการที่แนะนำสำหรับการตรวจสอบสถานที่และโหมดการฟังการเปลี่ยนแปลงมีผ่านและ
LocationManager#isLocationEnabled()
LocationManager#MODE_CHANGED_ACTION
ไม่ทราบว่าวิธีการเขียนโปรแกรมผ่านเชลล์จะเป็นอย่างไรเมื่อค่าคงที่นี้หายไป