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

时间:2015-03-13 09:55:26

标签: android wifi tethering

我有一个非常直截了当的问题:是否有可能知道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 个答案:

答案 0 :(得分:-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部分