在所有相关讨论中,人们提到get / setMobileDataEnabled是私有函数,需要使用反射来访问。例如,这一个How to tell if 'Mobile Network Data' is enabled or disabled (even when connected by WiFi)?。
但是,我发现设置应用程序(package / apps / Settings / src / com / android / settings / DataUsageSummary.java)根本不使用反射。谁知道原因?
private ConnectivityManager mConnService;
mConnService = ConnectivityManager.from(context);
private void setMobileDataEnabled(boolean enabled) {
if (LOGD) Log.d(TAG, "setMobileDataEnabled()");
mConnService.setMobileDataEnabled(enabled);
mMobileDataEnabled = enabled;
updatePolicy(false);
}
答案 0 :(得分:0)
“设置”应用程序是作为完整固件构建的一部分构建的。 “设置”应用不是Android SDK应用,因此不受Android SDK强加的限制,例如无法访问@hide
类和方法。