Android:如何通过Wifi执行Url请求

发布于 2024-10-07 11:05:54 字数 105 浏览 4 评论 0原文

是否有可能明确使用 wifi 连接来执行 Http Url 请求? 事实上,我只需要知道是否可以通过 wifi 连接互联网(例如访问 google.com)。 (不通过 2g / 3g / ..)

is there a possiblity to explicitely use the wifi connection for doing Http Url requests?
In fact i just need to know if an internet connection (access to google.com for example) is possible via wifi.
(not via 2g / 3g / ..)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泅渡 2024-10-14 11:05:54

据我所知,没有。这都是平台从我们那里抽象出来的。

但你可以检查一下WIFI是否可用:

        ConnectivityManager conMan = (ConnectivityManager) 
            getSystemService(Context.CONNECTIVITY_SERVICE);
        if(conMan!=null){
            try {
                NetworkInfo[] networkInfos = conMan.getAllNetworkInfo();
                for(NetworkInfo ni : networkInfos){
                    if(ni.isAvailable() && ni.isConnected() && ni.getTypeName().equals("WIFI")){
                        result = true;
                        break;
                    }
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }               
        }

As far as I know, no. This is all abstracted from us by the platform.

But you can check to see if WIFI is available:

        ConnectivityManager conMan = (ConnectivityManager) 
            getSystemService(Context.CONNECTIVITY_SERVICE);
        if(conMan!=null){
            try {
                NetworkInfo[] networkInfos = conMan.getAllNetworkInfo();
                for(NetworkInfo ni : networkInfos){
                    if(ni.isAvailable() && ni.isConnected() && ni.getTypeName().equals("WIFI")){
                        result = true;
                        break;
                    }
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }               
        }
鹿港小镇 2024-10-14 11:05:54

您可能会发现这很有用:

public class ConnectivityHelper {

    public static boolean isWiFiNetworkConnected(Context context) {
        return getWiFiNetworkInfo(context).isConnected();
    }

    private static NetworkInfo getWiFiNetworkInfo(Context context) {
        return getConnectivityManager(context).getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    }

    private static ConnectivityManager getConnectivityManager(Context context) {
        return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    }
}

You may find this useful:

public class ConnectivityHelper {

    public static boolean isWiFiNetworkConnected(Context context) {
        return getWiFiNetworkInfo(context).isConnected();
    }

    private static NetworkInfo getWiFiNetworkInfo(Context context) {
        return getConnectivityManager(context).getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    }

    private static ConnectivityManager getConnectivityManager(Context context) {
        return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    }
}
似狗非友 2024-10-14 11:05:54

我还没有这样做,所以我不确定,但我在查看文档时发现了这一点。

public boolean wifiAvailable() {
        ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = connMgr.getActiveNetworkInfo();
        if((info.isAvailable() && info.isConnected() && (info.getType()==ConnectivityManager.TYPE_WIFI))) return true;
        return false;
    }

在您要发出请求的地方,评估此方法,如果它返回 true 系统将自动使用 WiFi,Android 将始终在可用时使用 3G/2G 上的 wifi AFAIK。

I havent done this, so i'm not sure, but I found this looking through the documentation.

public boolean wifiAvailable() {
        ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = connMgr.getActiveNetworkInfo();
        if((info.isAvailable() && info.isConnected() && (info.getType()==ConnectivityManager.TYPE_WIFI))) return true;
        return false;
    }

Where you are going to fire a request, evaluate this method, if it returns true the system will automatically use WiFi, android will always use wifi over 3G/2G when available AFAIK.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文