众所周知,在Android 4.2上,只有系统应用程序可以切换飞行模式。但我认为它必须适用于root设备。我希望在我的Build.VERSION.SDK_INT> = 17的root设备应用程序中实现它。 如何使用Android 4.2在root设备上切换飞行模式?
答案 0 :(得分:13)
Android 4.2中有一个新的“设置”二进制文件 您也可以在没有su的情况下使用它,那么您的应用程序需要更改应用程序清单中声明的此设置所需的权限(对于4.2中的航班模式,这将是WRITE_SECURE_SETTINGS - 仅授予安装在系统分区上的应用程序)。
激活
su
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
停用
su
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
对于其他Android版本和其他设置(在4.2之前可以在没有root的情况下激活飞行模式)你可以在settings.db中使用sql注入
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
insert into global values(null, 'airplane_mode_on', 1);
将“global”替换为“system”或“secure”,将“airplane_mode_on”替换为所需表条目的键。对于某些设置,您需要在之后发送某些广播,请参阅上面的示例了解航班模式。
要探索您的设置。在终端应用中运行此功能:
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
.tables
select * from global
select * from secure
select * from system