-1

我有一个非常简单的问题:是否有可能知道 Android 中的活动 wifi 连接是否来自 3G 热点?

背景:我有一台没有 3G 的平板电脑,它通过手机(可以是 iPhone 或 Android 手机)连接到 3G wifi 热点。在我的应用程序中,我确实想使用此连接连接来发出小型 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 phone, 和Android turn On/Off WiFi HotSpot programmatically, 所以这并没有多大帮助。

4

1 回答 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 部分

于 2015-03-13T10:36:18.800 回答