众所周知,在Android 4.2上只有系统应用程序可以切换飞行模式,但我认为对于已root的设备来说,这一功能必须是可用的。我想在我的应用程序中实现此功能,要求设备的Build.VERSION.SDK_INT>=17。
如何在已root的Android 4.2设备上切换飞行模式?
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);
将“全局”替换为“系统”或“安全”,将“airplane_mode_on”替换为所需表条目的键。对于某些设置,您需要发送特定的广播,请参见上面飞行模式的示例。
要浏览您的settings.db,请在终端应用程序中运行此命令:
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
.tables
select * from global
select * from secure
select * from system