gpt4 book ai didi

android - 如何在Android上检查上网(发送和接收数据是否成功)?

转载 作者:行者123 更新时间:2023-11-29 00:08:12 25 4
gpt4 key购买 nike

您好,我想检查手机或平板电脑何时连接到网络(移动或 wifi)。

此网络是否可以访问互联网并发送和接收数据?

我使用这段代码:

    ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI")) {
if (ni.isConnected()) {
Toast.makeText(context,"WIFI CONNECTED",Toast.LENGTH_LONG).show();

Boolean m = isOnline();
Toast.makeText(context,String.valueOf(m),Toast.LENGTH_LONG).show();


} else {
Toast.makeText(context,"WIFI NOT CONNECTED AND AVAILABLE",Toast.LENGTH_LONG).show();
}


public boolean isOnline() {

Runtime runtime = Runtime.getRuntime();
try {

Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);

} catch (IOException e) { e.printStackTrace(); }
catch (InterruptedException e) { e.printStackTrace(); }

return false;
}

但总是返回false

(我在 BlueStacks 中测试应用程序)。

我测试stackoverflow中存在的所有代码

最佳答案

首先,试试这个来检查你是否真的连接:

ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();

要获取连接类型,试试这个:

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

检查此图像以查看其他连接类型。

enter image description here

不要忘记在您的 list 中添加这一行:

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

有关 the training 的更多信息.

有关 ConnectivityManager 的更多信息 here .


编辑:您也可以尝试类似的操作:

ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();

if (info != null) {
return info.isConnectedOrConnecting();
}

第二次编辑:是的,您也可以使用“ping”方法。但是......我认为这真的没有必要,你可以简单地尝试上面的解决方案......

关于android - 如何在Android上检查上网(发送和接收数据是否成功)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com