I have class to receive network change, it work in apk <= 23. I read in nugat i must use context.registerReceiver() but i don't know how/where use it, please help me.
public class syncNetworkStateChecker extends BroadcastReceiver{
@Override
public void onReceive(final Context context, Intent intent) {
if (checkNetworkConnection(context)) { something todo }
}
public boolean checkNetworkConnection(Context context)
{
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return (networkInfo!= null && networkInfo.isConnected());
}
In MainActivity i add code:
ComponentName reciver = new ComponentName(getBaseContext(), syncNetworkStateChecker.class);
PackageManager pm = getBaseContext().getPackageManager();
pm.setComponentEnabledSetting(reciver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
final String SOME_ACTION = "CONNECTIVITY_SERVICE";
IntentFilter intentFilter = new IntentFilter(SOME_ACTION);
brodcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
syncNetworkStateChecker start = new syncNetworkStateChecker();
Intent intent_sync = new Intent(getBaseContext(), BackgroundLocation.class);
start.onReceive(getBaseContext(), intent_sync);
}
};
registerReceiver(brodcastReceiver, intentFilter);
Intent i2 = new Intent(SOME_ACTION);
sendBroadcast(i2);
Thanks for your answers!