相关疑难解决方法(0)

检测Android上是否有可用的Internet连接

我需要检测Android设备是否已连接到Internet.

NetworkInfo类提供了一个非静态方法isAvailable()听起来很完美.

问题是:

NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

The constructor NetworkInfo is not visible.
Run Code Online (Sandbox Code Playgroud)

安全的赌注是有另一个类返回一个NetworkInfo对象.但我不知道哪个.

  1. 如何让上面的代码段工作?
  2. 我怎么能找到自己在在线文档中需要的信息?
  3. 你能为这种类型的检测提出更好的方法吗?

android internet-connection android-internet

667
推荐指数
6
解决办法
52万
查看次数

如何检查Android上的互联网访问?InetAddress永远不会超时

我有一个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)

networking android asynchronous

637
推荐指数
27
解决办法
45万
查看次数

使用.NET检查Internet连接的最佳方法是什么?

在.NET中检查Internet连接的最快,最有效的方法是什么?

.net c# internet-connection

224
推荐指数
11
解决办法
21万
查看次数

Android:互联网连接改变监听器

我已经有了这个代码来监听连接变化 -

public class NetworkStateReceiver extends BroadcastReceiver
{
  public void onReceive(Context context, Intent intent)
  {
    Log.d("app","Network connectivity change");

    if(intent.getExtras() != null)
    {
      NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
      if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED)
      {
        Log.i("app", "Network " + ni.getTypeName() + " connected");
      }
    }

    if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE))
    {
      Log.d("app", "There's no network connectivity");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我使用此代码检查Internet连接 - Internet Check

但问题是,如果网络在没有任何连接变化的情况下突然失去互联网连接,则此代码无用.有没有办法为Internet连接更改创建Broadcast Receiver侦听?我有一个Web应用程序,突然的Internet连接更改可能会导致问题.

java android connectivity

51
推荐指数
7
解决办法
8万
查看次数

Google.com和clients1.google.com/generate_204

我正在调查google.com在firebug中的Net活动,因为我很好奇并注意到请求返回"204 No Content".

事实证明,204 No Content"主要是为了允许在不引起用户代理的活动文档视图更改的情况下进行操作的输入,尽管任何新的或更新的元信息应该应用于当前在用户代理的活动中的文档视图." 随你.

我查看了JS源代码,看到像这样请求"generate_204":

(new Image).src="http://clients1.google.com/generate_204"
Run Code Online (Sandbox Code Playgroud)

根本没有变量声明/赋值.

我的第一个想法是,它被用于跟踪Javascript是否已启用.但是,"(新图像).src ='...'"调用无论如何都是从动态加载的外部JS文件中调用的,因此这将毫无意义.

任何人都有任何关于这一点的想法?

UPDATE

"/ generate_204"似乎可以在许多谷歌服务/服务器上使用(例如,maps.google.com/generate_204,maps.gstatic.com/generate_204等...).

您可以通过为您的网络应用可能使用的每个Google拥有的服务预先获取generate_204页面来利用此功能.像这样:

window.onload = function(){
    var two_o_fours = [
        // google maps domain ...
        "http://maps.google.com/generate_204",

        // google maps images domains ... 
        "http://mt0.google.com/generate_204",
        "http://mt1.google.com/generate_204",
        "http://mt2.google.com/generate_204",
        "http://mt3.google.com/generate_204",

        // you can add your own 204 page for your subdomains too!
        "http://sub.domain.com/generate_204"
    ];
    for(var i = 0, l = two_o_fours.length; i < l; ++i){
        (new Image).src = two_o_fours[i];
    }
};
Run Code Online (Sandbox Code Playgroud)

javascript http http-headers

43
推荐指数
6
解决办法
12万
查看次数

如何检查当前的互联网连接是否可用于android

我也想离线执行我的应用程序,所以我需要检查当前是否有可用的互联网连接.任何人都可以告诉我如何在Android中检查互联网是否可用?提供示例代码.我尝试使用下面的代码并使用模拟器进行检查,但它无法正常工作

public  boolean isInternetConnection() 
{ 

    ConnectivityManager connectivityManager =  (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    return connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting(); 
} 
Run Code Online (Sandbox Code Playgroud)

谢谢

android internet-connection

35
推荐指数
9
解决办法
9万
查看次数

在android上检查互联网连接

我有以下代码用于检查我的应用程序上的互联网连接wifi/EDGE/GPRS/3G.

代码是

public static boolean checkConn(Context ctx) {
    ConnectivityManager conMgr = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
        || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
        return true;
    } else if (conMgr.getNetworkInfo(0).getState()==NetworkInfo.State.DISCONNECTED
        || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED){
        return false;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我打电话给它如下:

if (CheckInternet.checkConn(introPage.this) == true) {
    Intent toMainPage = new Intent(introPage.this, mainPage.class);
    System.gc();
    startActivity(toMainPage);
} else if (CheckInternet.checkConn(getApplicationContext()) == false) {
    Toast.makeText(getApplicationContext(),
        "Sorry, No internet connectivity found", Toast.LENGTH_SHORT)
            .show();
}
Run Code Online (Sandbox Code Playgroud)

但我有一个问题,那就是如果我连接到wifi,我打开应用程序,它工作正常,但如果我关闭应用程序并关闭wifi并重新打开应用程序,它不会通过错误"没有连接",我需要关闭我的设备,然后打开它,同样的情况是如果wifi关闭,我打开应用程序,它会抛出"无连接"的错误,如果我打开它,仍然它抛出"无连接"的相同错误,除非我关闭并打开设备.

connection android

22
推荐指数
1
解决办法
7万
查看次数

如何在android上icmp ping

我需要从我的android设备对主机进行icmp ping.我需要测量往返时间.我精通android和java,只是不知道要使用什么库.我该怎么做?是否有可能通过3G,Edge?

android icmp

15
推荐指数
2
解决办法
3万
查看次数

在API级别28中不推荐使用activeNetworkInfo.type

在此处输入图片说明我想使用提供方法activeNetworkInfo.type的连接管理器来检查Android中的网络类型。此方法在API级别28中已弃用。因此在API 28中检查网络类型的解决方案是什么。我的代码是:

/**
 * Check Wi Fi connectivity
 */
fun isWiFiConnected(context: Context): Boolean {
    val connManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    return connManager.activeNetworkInfo.type == ConnectivityManager.TYPE_WIFI
}
Run Code Online (Sandbox Code Playgroud)

我的摇篮就像:

compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
        minSdkVersion 21
        targetSdkVersion 28
    }
Run Code Online (Sandbox Code Playgroud)

android deprecated kotlin

15
推荐指数
6
解决办法
6416
查看次数

Android - 如何检查互联网访问,而不仅仅是连接到wifi?

我尝试了下面的代码来检查我的手机是否连接到无线网络,当我想知道我的手机是否连接到网络时它运行良好,但它无法提供有关互联网访问的信息...类似于" Ping"任何网站.实际上我遵循了许多链接,但仍然没有答案,所以如果有人能提供帮助,我会非常感激.

提前致谢.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Toast t = new Toast(getApplicationContext());

    if (isInternetOn()) {
         // INTERNET IS AVAILABLE, DO STUFF..
         Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show();

         }
    else {
         // NO INTERNET AVAILABLE, DO STUFF..
        Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show();

        }
}

public final boolean isInternetOn() {


    ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    // ARE WE CONNECTED TO THE NET
    if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
    // …
Run Code Online (Sandbox Code Playgroud)

connection android

13
推荐指数
2
解决办法
2万
查看次数