首页 > 解决方案 > 有没有办法通过android应用程序切换互联网网络?

问题描述

我的要求是通过运营商验证android中的手机号码。我可以在单卡手机的情况下进行验证,但问题出在双卡手机上。要求是通过运营商切换移动数据并验证手机号码。

任何帮助都是非常可观的。

标签: javaandroid

解决方案


我不知道如何完全关闭移动数据,但下面的代码可以正确禁用 wifi。

放入清单

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 

WifiManager wifiManager = 
   (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);  // true -> enable

移动数据的定义函数

private void setMobileConnectionEnabled(Context context, boolean enabled) {
       final ConnectivityManager mConnectivityManager = (ConnectivityManager)  context.getSystemService(Context.CONNECTIVITY_SERVICE);
       final Class mClass = Class.forName(mConnectivityManager.getClass().getName());
       final Field mField = mClass.getDeclaredField("mService");
       mField.setAccessible(true);
       final Object mObject = mField.get(mConnectivityManager);
       final Class mConnectivityManagerClass =  Class.forName(mObject.getClass().getName());
       final Method setMobileDataEnabledMethod = mConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
       setMobileDataEnabledMethod.setAccessible(true);

       setMobileDataEnabledMethod.invoke(mObject, enabled);
}

如果上述功能不起作用,请尝试使用 Intent 切换移动数据

Intent intent = new Intent();
intent.setClassName("com.android.settings",
      "com.android.settings.Settings$DataUsageSummaryActivity");
startActivity(intent);

推荐阅读