这个问题已经有了答案:
The setMobileDataEnabled method is no longer callable as of Android L and later
8答
在android中,如何在android 4.4及更高版本中启用移动数据开/关。
我使用过这段代码,但它在Android 4.4及以上版本中不起作用:

private void setMobileDataEnabled(Context context, boolean enabled){
    final ConnectivityManager conman = (ConnectivityManager) context.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);
}

最佳答案

您无法访问Android 4.4上的移动数据开/关程序。出于安全原因,已将其停止,您可以使用对话框要求用户启用移动数据,然后如果用户启用,则可以执行任务。

07-24 09:46
查看更多