Android 如何在设备设置中打开/关闭移动数据
我想检查移动数据是否打开/关闭,为此,我使用以下代码:Android 如何在设备设置中打开/关闭移动数据,android,Android,我想检查移动数据是否打开/关闭,为此,我使用以下代码: ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); Class cmClass = Class.forName(cm.getClass().getName()); Method method = cmClass.getDeclaredMethod(
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
Class cmClass = Class.forName(cm.getClass().getName());
Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
method.setAccessible(true); // Make the method callable
// get the setting for "mobile data"
mobileDataEnabled = (Boolean) method.invoke(cm);
但是,此代码在某些设备上不起作用,并引发异常,不存在此类方法。
我发现它在Android 4.1.x中不起作用。为什么会抛出此执行选项,我如何修复它?connection.java
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context){
this._context = context;
}
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
//return (connectivity != null && connectivity.getActiveNetworkInfo().isConnectedOrConnecting()) ? true : false;
if (connectivity.getActiveNetworkInfo() != null && connectivity.getActiveNetworkInfo().isAvailable() && connectivity.getActiveNetworkInfo().isConnected())
{
return true;
} else {
//System.out.println("Internet Connection Not Present");
return false;
}
}
}
internetchecking.java
Boolean isInternetPresent = false;
ConnectionDetector cd;
cd = new ConnectionDetector(getApplicationContext());
isInternetPresent = cd.isConnectingToInternet();
if(isInternetPresent)
{
dotask();
}
else
{
display("No Internet Connection...");
}
在emulator中使用F8
键打开Internet连接您可以检查我也在做同样的事情的可接受答案。我想在设备设置中检查移动数据的打开/关闭。