0
目前我正在开发音乐播放器的应用程序,其中DJ正在播放歌曲和听众听音乐,但它涉及网络,如果客户端和DJ在同一个网络上,那么他们听那里的演出活动否则不是所以我们有更多的两个WiFi网络问题是这样的,如果网络1是关闭的移动交换机默认情况下网络,所以我的应用程序将崩溃我想从OS获取通知,如果它从一个网络改变它热点另一个提前Android中的无线网络开关
目前我正在开发音乐播放器的应用程序,其中DJ正在播放歌曲和听众听音乐,但它涉及网络,如果客户端和DJ在同一个网络上,那么他们听那里的演出活动否则不是所以我们有更多的两个WiFi网络问题是这样的,如果网络1是关闭的移动交换机默认情况下网络,所以我的应用程序将崩溃我想从OS获取通知,如果它从一个网络改变它热点另一个提前Android中的无线网络开关
我们理解Thankx任何帮助,我经常这样做这样的,如果我拿出一个请求:
private static final int NETWORK_TYPE_MOBILE = 0;
private static final int NETWORK_TYPE_WIFI = 1;
private static final int NETWORK_TYPE_ETHERNET = 9; //yep, cable
public static boolean checkForActiveNetworkOnDevice(Context applicationContext) {
boolean deviceHasConnectedWifi = false;
boolean deviceHasConnectedMobile = false;
boolean deviceHasConnectedEthernet = false;
ConnectivityManager connectivityManager = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] networkInfos = connectivityManager.getAllNetworkInfo();
if (networkInfos != null) {
for (NetworkInfo networkInfo : networkInfos) {
if (NETWORK_TYPE_WIFI == networkInfo.getType()) {
if (networkInfo.isConnected()) { deviceHasConnectedWifi = true;}
}
if (NETWORK_TYPE_MOBILE == networkInfo.getType()) {
if (networkInfo.isConnected()) { deviceHasConnectedMobile = true;}
}
if (NETWORK_TYPE_ETHERNET == networkInfo.getType()) {
if (networkInfo.isConnected()) { deviceHasConnectedEthernet = true; }
}
}
}
return deviceHasConnectedWifi || deviceHasConnectedMobile || deviceHasConnectedEthernet;
}
public static boolean checkForWifi(Context applicationContext) {
boolean deviceHasConnectedWifi = false;
ConnectivityManager connectivityManager = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] networkInfos = connectivityManager.getAllNetworkInfo();
if (networkInfos != null) {
for (NetworkInfo networkInfo : networkInfos) {
if (NETWORK_TYPE_WIFI == networkInfo.getType()) {
if (networkInfo.isConnected()) { deviceHasConnectedWifi = true;}
}
}
}
return deviceHasConnectedWifi;
}
public static boolean checkForEthernet(Context applicationContext) {
boolean deviceHasConnectedEthernet = false;
ConnectivityManager connectivityManager = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] networkInfos = connectivityManager.getAllNetworkInfo();
if (networkInfos != null) {
for (NetworkInfo networkInfo : networkInfos) {
if (NETWORK_TYPE_ETHERNET == networkInfo.getType()) {
if (networkInfo.isConnected()) { deviceHasConnectedEthernet = true;}
}
}
}
return deviceHasConnectedEthernet;
}
但是,如果设备断开连接,您应该让MediaPlayer拨打OnErrorListener
。如果发生这种情况,你可以再次检查连接,如果你有网络连接,你可以恢复播放。
编辑 哦,看来我误解了你的问题,但我留下了我的答案,因为你仍然可以检查连接。