My android application based on network connection, it works fine when my mobile is connected to internet but when internet connection disconnected it stops working(obesely), did not connect automatically.
And i want to the data onto the server whenever internet available.
Any help would be helpful for me.
NetworkBroadcastReceiver.java
public class NetworkBroadcastReceiver extends BroadcastReceiver {
private static ConnectivityManager mConnectivityManager;
public NetworkBroadcastReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
if (isNetworkAvailable(context))
Toast.makeText(context, "Connected", Toast.LENGTH_LONG).show();
else
Toast.makeText(context, "Not Connected", Toast.LENGTH_LONG).show();
}
/**
*
* @param context
* @return
*/
public static boolean isNetworkAvailable(Context context) {
boolean isMobile = false;
boolean isWifi = false;
NetworkInfo[] infoAvailableNetworks = getConnectivityManager(context).getAllNetworkInfo();
if (infoAvailableNetworks != null) {
for (NetworkInfo network : infoAvailableNetworks) {
if (network.getType() == ConnectivityManager.TYPE_WIFI) {
if (network.isConnected() && network.isAvailable())
isWifi = true;
}
if (network.getType() == ConnectivityManager.TYPE_MOBILE) {
if (network.isConnected() && network.isAvailable())
isMobile = true;
}
}
}
return isMobile || isWifi;
}
/**
* Return connectivity manager instance.
* @return mConnectivityManager
*/
public static ConnectivityManager getConnectivityManager(Context context) {
if (mConnectivityManager == null) {
mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
}
return mConnectivityManager;
}
}
Manifest.xml
<receiver
android:name=".receiver.NetworkBroadcastReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
</intent-filter>
</receiver>