我有一个非常直截了当的问题:是否有可能知道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 phone
和Android turn On/Off WiFi HotSpot programmatically
之类的内容,所以这并没有多大帮助。
答案 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部分