2013-04-07 49 views
8

Như đã biết, trên các ứng dụng hệ thống chỉ dành cho Android 4.2 có thể chuyển đổi Chế độ trên máy bay. Nhưng tôi nghĩ rằng nó phải có sẵn cho các thiết bị bắt nguồn từ. Và tôi muốn kết hợp nó trong ứng dụng của tôi cho các thiết bị bắt nguồn từ với Build.VERSION.SDK_INT> = 17. Cách chuyển Chế độ trên máy bay trên các thiết bị được root bằng Android 4.2?Cách chuyển Chế độ trên máy bay trên Android 4.2 trở lên bằng root?

+0

liên quan (mặc dù không nhất thiết phải là một bản sao): http://stackoverflow.com/questions/13766909/android-how-to- enable-disable-flight-mode-on-android-4-2? lq = 1 –

+0

Có, câu hỏi này không trùng lặp. – BArtWell

Trả lời

13

Có một nhị phân "cài đặt" mới trong Android 4.2 Bạn cũng có thể sử dụng nó mà không cần su, sau đó ứng dụng của bạn cần quyền thay đổi cài đặt này được khai báo trong tệp kê khai của ứng dụng của bạn (WRITE_SECURE_SETTINGS cho chế độ trên máy bay 4.2 - chỉ được cấp cho các ứng dụng được cài đặt trên phân vùng hệ thống).

Kích hoạt

su 
settings put global airplane_mode_on 1 
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true 

Deactivate

su 
settings put global airplane_mode_on 0 
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false 

Đối với các phiên bản Android khác và các thiết lập khác (chế độ máy bay có thể được kích hoạt mà không có gốc trước 4.2), bạn có thể sử dụng sql tiêm trong settings.db

su 
sqlite3 /data/data/com.android.providers.settings/databases/settings.db 
insert into global values(null, 'airplane_mode_on', 1); 

Thay thế "chung" bằng "hệ thống" hoặc "bảo mật" và "airplane_mode_on" bằng khóa của mục nhập bảng bạn muốn. Đối với một số cài đặt bạn cần gửi một số chương trình phát sóng sau đó, xem ví dụ ở trên để biết chế độ trên máy bay.

Để khám phá settings.db của bạn chạy này trong một ứng dụng thiết bị đầu cuối:

su 
sqlite3 /data/data/com.android.providers.settings/databases/settings.db 
.tables 
select * from global 
select * from secure 
select * from system 
+0

Tôi không rõ 100% về điều này ... Điều này có nghĩa là không có cách nào để chuyển đổi chế độ máy bay theo cách hợp pháp trên> = 4.2 qua API mà không cần root? – Marius

+0

Vâng, đây là những gì các câu hỏi ban đầu cũng nói. (Ứng dụng của bạn không thể là ứng dụng hệ thống không có gốc hoặc bản thân bạn đang phát triển/biên dịch chương trình cơ sở). – user1806772

Các vấn đề liên quan