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
。如果發生這種情況,你可以再次檢查連接,如果你有網絡連接,你可以恢復播放。
編輯 哦,看來我誤解了你的問題,但我留下了我的答案,因爲你仍然可以檢查連接。