首页 文章

检查3G热点是否有wifi连接

提问于
浏览
-1

我有一个非常直截了当的问题:是否有可能知道Android中的有效wifi连接是否来自3G热点?

背景:我有一台没有3G的平板电脑,它连接到手机的3G wifi热点(可以是iPhone或Android手机) . 在我的应用程序中,我确实想使用这个系留连接来发出小型Web服务请求,但是应用程序中的一些功能(比如上传照片等等:数据密集型的东西)我想限制为非3G系留连接 .

在SO上的其他帖子中,我看到Android热点的IP地址总是 192.168.43.x ;而这似乎就是这种情况 . 但是,是否有一些通用的方法来确定是否通过手机连接了wifi连接?

我尝试谷歌的答案,但 Android check wifi 3g hotspot programmatically 的组合仍然只会导致像 How to set up a wifi hotspot with your phoneAndroid turn On/Off WiFi HotSpot programmatically 这样的东西,所以这没有多大帮助 .

1 回答

  • -1

    你可以用这种方法检查手机的网络连接

    public boolean hasConnection()
    {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    
        //WIFI
        NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (wifiNetwork != null && wifiNetwork.isConnected())
            return true;
    
        //MOBILE
        NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (mobileNetwork != null && mobileNetwork.isConnected())
            return true;
    
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
    }
    

    你需要将这一行添加到你的清单中

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

    只检查移动连接类型 - 你可以删除wifi部分

相关问题