Có thể bật Dịch vụ vị trí (GPS hoặc Google NetworkLocation) thông qua ADB hoặc Trình mô phỏng đầu cuối không? Tôi đang sử dụng điện thoại đã được root.
Điểm bổ sung: Cũng có thể thay đổi các cài đặt liên quan đến hệ thống khác?
Có thể bật Dịch vụ vị trí (GPS hoặc Google NetworkLocation) thông qua ADB hoặc Trình mô phỏng đầu cuối không? Tôi đang sử dụng điện thoại đã được root.
Điểm bổ sung: Cũng có thể thay đổi các cài đặt liên quan đến hệ thống khác?
Câu trả lời:
Có thể bật Dịch vụ vị trí (GPS hoặc Google NetworkLocation) thông qua ADB hoặc Trình mô phỏng đầu cuối không?
Lệnh là:
adb shell settings put secure location_providers_allowed gps
Ở đâu,
settings
sẽ thay đổi thành settings.db
(một phần của com.android.providers.settings
)put
là để cập nhật khóa location_providers_allowed
với giá trị gps
trong bảng secure
.Lệnh nói trên sẽ không kích hoạt Dịch vụ vị trí của Google. Để kích hoạt nó, hãy ra lệnh:
adb shell settings put secure location_providers_allowed gps,network
Bạn sẽ được hiển thị một cửa sổ bật lên để đồng ý cho Dịch vụ vị trí. Trong Android 4.2.1, tôi phải đồng ý thông qua GUI hoặc input keyevent
mỗi lần tôi kích hoạt dịch vụ từ đầu.
Tuy nhiên, trong Android 5.0 của tôi, tôi có thể lưu các cài đặt trong hộp thoại và thực thi lệnh giúp mọi việc được thực hiện hoàn hảo từ lần tiếp theo.
Một số thiết bị như Lollipop có ba chế độ Vị trí và các giá trị có liên quan được truyền trong lệnh nói trên sẽ là:
gps,wifi,network
hoặc gps,network
(nếu bạn không muốn bật Wi-Fi)wifi,network
hoặc network
chỉgps
adb shell settings put secure location_providers_allowed ' '
Cũng có thể thay đổi các cài đặt liên quan đến hệ thống khác?
Xem :
Nhưng tôi đã đưa ra một ý tưởng lớn bằng cách sử dụng settings put
.
location_providers_allowed
được dùng nữa ( developer.android.com/reference/android/provider/ mẹo ). Ý tưởng?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
, sau đó nhấp vào nút chuyển đổi.
Dành cho Android 6.0
Để cho phép sử dụng:
Đối với GPS: adb shell settings put secure location_providers_allowed +gps
Đối với mạng: adb shell settings put secure location_providers_allowed +network
Để vô hiệu hóa:
GPS: adb shell settings put secure location_providers_allowed -gps
Đối với mạng: adb shell settings put secure location_providers_allowed -network
Dịch vụ định vị Android đi kèm với các tùy chọn khác nhau:
1) Độ chính xác cao: gps, network
Cho phép:
adb shell settings put secure location_providers_allowed +gps,network
Vô hiệu hóa:
adb shell settings put secure location_providers_allowed -gps,network
2) Chỉ điện thoại: gps
Cho phép:
adb shell settings put secure location_providers_allowed +gps
Vô hiệu hóa: adb shell settings put secure location_providers_allowed -gps
3) Tiết kiệm pin: network
Cho phép:
adb shell settings put secure location_providers_allowed +network
Vô hiệu hóa: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
không còn hoạt động cho Android 10 (API cấp 29).
Thay vào đó, bạn có thể thiết lập location_mode
để LOCATION_MODE_HIGH_ACCURACY
với giá trị là 3:
adb shell settings put secure location_mode 3
LƯU Ý: Có thể sẽ không hoạt động> v29 vì điều này đã bị phản đối vì các tài liệu trên Chế độ vị trí đề cập:
Hằng số này không được chấp nhận ở cấp độ API 28. Các phương pháp ưa thích để kiểm tra chế độ vị trí và lắng nghe các thay đổi là thông qua
LocationManager#isLocationEnabled()
vàLocationManager#MODE_CHANGED_ACTION
.
Không biết một cách lập trình để làm điều này thông qua vỏ sẽ là gì khi hằng số này biến mất.