我正在编写一个服务,运行时,你启动的电话,但你需要一个互联网连接和连接发送短信操作员。我写了一个函数到ConnectionManager,就像在其他post中出现的一样,但我总是得到相同的答案:NullPointerException,当我执行以下操作时:
我将cm定义为ConnectionManager
NetworkInfo NetInfo = cm.getNetworkInfo();难道不是因为这个原因吗?
我怎么才能修复它?
抱歉,如果我没有把所有的代码...
我在ACTION_BOOT_COMPLETED激活的服务的OnStart ()方法中有以下内容...
@ Override
public void OnStart (Intent intent, int start) {
Context aplCtx = getApplicationContext ();
IsConnected boolean = false;
while (! IsConnected) {
try {
IsConnected = IsOnline (aplCtx);
} Catch (Exception e) {
Log.d (e.toString ());
}
}
.....
}
private boolean IsOnline (Context ctx) {
boolean result = false;
try {
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService (Context.CONNECTIVITY_SERVICE);
cm.getActiveNetworkInfo NetworkInfo ni = ();
if (ni! = null) {
if (ni.getState () == NetworkInfo.State.CONNECTED) {
result = true;
}
}
return result;
}由于这是一个后台函数,并且在启动智能手机之后,操作系统会在我们连接到互联网之前强制终止该进程。我如何解决这个问题?如何让操作系统不杀死进程,并有Internet连接来执行以下操作?
发布于 2011-11-23 18:46:18
没有你的代码,我们不能说出什么问题,
但是为了获取网络信息,我正在使用这个,如果你没有犯错误,那么它也可以工作,
public static boolean netConnect(Context ctx){
ConnectivityManager cm ;
NetworkInfo info = null;
try {
cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
info = cm.getActiveNetworkInfo();
} catch (Exception e) {
Log.e("connectivity", e.toString());
}
if(info != null){
return info.isConnected();
}else{
return false;
}
}https://stackoverflow.com/questions/8240739
复制相似问题