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连接

您可以检查我也在做同样的事情的可接受答案。我想在设备设置中检查移动数据的打开/关闭。