数据连接启用的Andr​​oid服务中/禁用code崩溃 [英] Data connection enable/disable code crashes inside a android service

查看:165
本文介绍了数据连接启用的Andr​​oid服务中/禁用code崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

void turnData(boolean ON)
 {
   final ConnectivityManager conman = (ConnectivityManager) getApplicationContext().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, ON);
}

以上code是启用/ android中2禁用数据连接。
3+。
它的工作原理没有,当我在一个活动运行任何错误。但是,当我试图运行服务中的应用程序崩溃。谁能告诉我为什么会这样?

The above code is to enable/disable Data Connection in android 2. 3+. It works without any errors when I run it in an Activity. But when i tried to run it inside a service the application crashed. Can anyone tell me why this happened?

推荐答案

问题通过添加以下额外的权限清单文件解决:

Problem solved by adding the following additional permissions to the Manifest file:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

这篇关于数据连接启用的Andr​​oid服务中/禁用code崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆