java - 有没有办法通过android应用程序切换互联网网络?
问题描述
我的要求是通过运营商验证android中的手机号码。我可以在单卡手机的情况下进行验证,但问题出在双卡手机上。要求是通过运营商切换移动数据并验证手机号码。
任何帮助都是非常可观的。
解决方案
我不知道如何完全关闭移动数据,但下面的代码可以正确禁用 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);
推荐阅读
- lotus-notes - 将鼠标悬停在 Action Hot-Spot Notes 客户端上的文本上
- shell - 如何知道我的计算机中是否安装了 Dart 或 Flutter?
- ms-access - 无法将访问表单链接到数据集
- r - 根据 R 中的两个布尔列值将值保留在列的单行中
- vue.js - 如何提取系统字体并实现为下拉菜单以更改网页上文本的字体?
- python - Scrapy 蜘蛛从文本文件中的 URL 列表中抓取最后一个 URL
- javascript - 通过其他数组中的元素过滤数组对象
- sql - 使用返回 int 的函数时出现问题
- typo3 - TYPO3:felogin 没有显示任何错误
- android - Android Studio 4.0 文档弹出窗口无法正常工作