从Android (O)开始,禁止三方应用开启数据连接开关。
8.0之前,为hide、systemApi,没有权限控制,也未在sdk中公开,但第三方应用可以使用反射调用
8.0开始,除仍旧为hide、systemApi之外,加入了android.permission.MODIFY_PHONE_STATE(ProtectionLevel:Signature|privileged),杜绝了第三方应用的使用。
权限 & 接口
<privacy> <case> <case_name>打开数据开关</case_name> <case_permission>android.permission.MODIFY_PHONE_STATE</case_permission> <case_interface>@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void android.telephony.TelephonyManager.setDataEnabled(boolean)</case_interface> <case_interface>@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void android.telephony.TelephonyManager.setDataEnabled(int, boolean)</case_interface> </case> </privacy>
adb shell svc data