Android 通过反射打开与关闭数据连接

来源:互联网 发布:一米七标准体重知乎 编辑:程序博客网 时间:2024/05/29 05:54
private void setMobileDataEnabled() {if (mConnectivityManager == null) {mConnectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);}Class policyClass = mConnectivityManager.getClass();Log.v("wmg", "policyClass.toString = " + policyClass.toString());Method meths[] = policyClass.getMethods();Method getMobileDataEnabled = null;Method setMobileDataEnabled = null;for (int i = 0; i < meths.length; i++) {if (meths[i].getName().endsWith("getMobileDataEnabled")) {getMobileDataEnabled = meths[i];}if (meths[i].getName().endsWith("setMobileDataEnabled")) {setMobileDataEnabled = meths[i];}}/* * Log.v("wmg", * "getMobileDataEnabled.toString = "+getMobileDataEnabled.toString()); * Log.v("wmg", * "setMobileDataEnabled.toString = "+setMobileDataEnabled.toString()); */try {boolean isEnabled = (Boolean) getMobileDataEnabled.invoke(mConnectivityManager, null);Log.v("wmg", "isEnabled = " + isEnabled);setMobileDataEnabled.invoke(mConnectivityManager, isEnabled ? false: true);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}
添加权限 :    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>

原创粉丝点击