我有一个AsyncTask应该检查网络访问主机名.但是doInBackground()永远不会超时.有人有线索吗?
public class HostAvailabilityTask extends AsyncTask<String, Void, Boolean> {
private Main main;
public HostAvailabilityTask(Main main) {
this.main = main;
}
protected Boolean doInBackground(String... params) {
Main.Log("doInBackground() isHostAvailable():"+params[0]);
try {
return InetAddress.getByName(params[0]).isReachable(30);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean... result) {
Main.Log("onPostExecute()");
if(result[0] == false) {
main.setContentView(R.layout.splash);
return;
}
main.continueAfterHostCheck();
}
}
Run Code Online (Sandbox Code Playgroud) 我一直试图重新审视当前的网络类型,但没有成功
当我说网络类型:我参考知道这个信息:如果类型是:NETWORK_TYPE_IDEN或NETWORK_TYPE_UMTS..等等..
我试着用:
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
Run Code Online (Sandbox Code Playgroud)
要么
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo
(ConnectivityManager.TYPE_MOBILE);
Run Code Online (Sandbox Code Playgroud)
但没有成功..
我正在做这个因为我想知道当前网络是否是IDEN,或者当前网络是否通过wifi连接..
我正在编写一个通过wifi连接到telnet服务器的应用程序.我有一个管理套接字连接的服务.一切正常,但是当手机休眠时,它会断开wifi无线电,导致套接字连接中断(并抛出SocketException).
我觉得我应该能够设置一个广播接收器,当wifi网络连接丢失时调用onResume()方法,这将允许我优雅地关闭套接字,并在网络立即重新打开它重新连接.但我在文档或搜索中找不到类似的东西.
服务代码在这里,如果你需要它,感谢您的帮助,我真的很感激!
package com.wingedvictorydesign.LightfactoryRemote;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.text.Editable;
import android.util.Log;
import android.widget.Toast;
import android.os.Debug;
/**
* @author Max
*/
public class TelnetService extends Service {
private final int DISCONNECTED = 0;
private final int CONNECTED = 1;
// place notifications in the notification bar
NotificationManager mNM;
protected …Run Code Online (Sandbox Code Playgroud) 无论如何我们可以检查Android设备是否只是WiFi?例如,Nexus 7具有仅WiFi设备和WiFi和3G设备.
朋友们,
我正在尝试检查android中的internetconnectivity并使用以下代码
final ConnectivityManager conn_manager = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();
if ( network_info != null && network_info.isConnected() )
{
return true;
}
else
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
但它给了我网络/ wifi连接,如果wifi连接它给我真实,如果互联网没有连接,那么它也给了我真实.
任何一个人指导我的解决方案是什么?