我想为主屏幕创建小部件,通过它我可以启用/禁用网络提供商的分组数据。
我知道如何制作小工具,但如果有人帮我通过编码启用/禁用数据包数据那么它将会很有帮助
提前致谢
答案 0 :(得分:2)
private void setMobileDataEnabled(Context context, boolean enabled) {
try
{
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);
}
catch (Exception e)
{
// TODO: handle exception
}
}
答案 1 :(得分:1)
看看How to disable Mobile Data on Android。接受的答案的作者通过java反射访问ITelephony接口实现了这一目标。