【问题标题】:How to toggle Airplane Mode on Android 4.2 and above using root?如何使用 root 在 Android 4.2 及更高版本上切换飞行模式?
【发布时间】:2013-03-29 11:15:42
【问题描述】:

众所周知,在 Android 4.2 上,只有系统应用程序可以切换飞行模式。但我认为它必须可用于有根设备。我想在我的应用程序中使用 Build.VERSION.SDK_INT>=17 来实现它。 如何在 Android 4.2 的 root 设备上切换飞行模式?

【问题讨论】:

标签: android root airplane


【解决方案1】:

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”替换为所需表条目的键。对于某些设置,您需要在之后发送某些广播,请参阅上面的飞行模式示例。

要探索您的 settings.db,请在终端应用程序中运行:

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

【讨论】:

  • 我对此不是 100% 清楚...这是否意味着没有办法通过 API 合法地在 >= 4.2 上切换飞行模式而无需生根?
  • 是的,原来的问题也是这么说的。 (您的应用不能是没有 root 或您自己开发/编译固件的系统应用)。
猜你喜欢
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多