在 Android 中有什么方法可以确定我们是否已经连接到某些 Wifi 或 Wifi Direct 或热点。
如果是,请告诉我怎么做?我需要找到所有 3 个(wifi/hotspot/wifi direct)并根据答案在我的应用程序中做一些事情。
在 Android 中有什么方法可以确定我们是否已经连接到某些 Wifi 或 Wifi Direct 或热点。
如果是,请告诉我怎么做?我需要找到所有 3 个(wifi/hotspot/wifi direct)并根据答案在我的应用程序中做一些事情。
这是一个代码快照,希望它对您有用!
public static int getNetworkType(Context context) {
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
// 获取网络连接管理的对象
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
// 判断当前网络是否已经连接
if (info.getState() == NetworkInfo.State.CONNECTED) {
if (info.getTypeName().equalsIgnoreCase("WIFI")) {
return MrDefines.NETTYPE_WIFI;
} else {
Cursor mCursor = context.getContentResolver().query(
Uri.parse("content://telephony/carriers"),
new String[] {"name"}, "current=1",
null, null);
if(mCursor != null && mCursor.moveToFirst()){
String name = mCursor.getString(0);
mCursor.close();
if(name.equalsIgnoreCase("cmnet"))
return MrDefines.NETTYPE_CMNET;
else if(name.equalsIgnoreCase("cmwap"))
return MrDefines.NETTYPE_CMWAP;
}else if (mCursor != null) {
mCursor.close();
}
}
}
}
}
return MrDefines.NETTYPE_UNKNOW;
}
我认为 WifiManager 和 ConnectivityManager 可能是您需要的东西。看看参考资料
http://developer.android.com/reference/android/net/wifi/WifiManager.html
http://developer.android.com/reference/android/net/ConnectivityManager.html