我使用此方法从我的应用程序启用移动数据网络:
private void setMobileDataEnabled(Context context, boolean enabled) throws Exception
{
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系统的分组数据按钮即使在关闭之后仍然附加到我的应用程序?为什么我要完全关闭它以便我再次手动禁用数据?