เป็นไปได้หรือไม่ที่จะเปิดใช้งานบริการตำแหน่ง (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ที่มีค่าในตารางgpssecureคำสั่งดังกล่าวจะไม่เปิดใช้งานบริการตำแหน่งของ 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เท่านั้นgpsadb 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
ไม่ทราบว่าวิธีการเขียนโปรแกรมผ่านเชลล์จะเป็นอย่างไรเมื่อค่าคงที่นี้หายไป