我的要求是通过运营商在android中验证手机号码。我可以在单个SIM卡手机的情况下这样做,但问题是双SIM卡。要求切换手机数据,通过运营商验证手机号码。
任何帮助都是非常值得感谢的。
发布于 2019-12-17 17:21:14
我不知道如何准确地关闭移动数据,但下面的代码正确地禁用了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);发布于 2019-12-17 17:36:14
你可以试试这个
public void mobiledataenable(boolean enabled) {
try {
final ConnectivityManager conman = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
final Class<?> conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
}
catch (Exception e) {
e.printStackTrace();
}
}https://stackoverflow.com/questions/59370772
复制相似问题