@Test @Config(minSdk = N) public void registerDefaultCallback_shouldAddCallback() throws Exception { ConnectivityManager.NetworkCallback callback = createSimpleCallback(); connectivityManager.registerDefaultNetworkCallback(callback); assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).hasSize(1); }
private void startNetworkConnectivityReceiver() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { appendLog(getBaseContext(), TAG, "Start connectivity receiver with handler"); networkConnectivityReceiver = new NetworkConnectivityReceiver(); IntentFilter filterNetworkConnectivity = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); getApplicationContext().registerReceiver(networkConnectivityReceiver, filterNetworkConnectivity); } else { appendLog(getBaseContext(), TAG, "Start connectivity receiver with callback"); ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); networkConnectionReceiver = new NetworkConnectionReceiver(this); connectivityManager.registerDefaultNetworkCallback(networkConnectionReceiver); } }
@SuppressLint("NewApi") @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) private void init() { if (DEBUG) Log.v(TAG, "init:"); final ConnectivityManager manager = requireConnectivityManager(); if (BuildCheck.isLollipop()) { mOnNetworkActiveListener = new MyOnNetworkActiveListener(); manager.addDefaultNetworkActiveListener(mOnNetworkActiveListener); // API>=21 mNetworkCallback = new MyNetworkCallback(); // ACCESS_NETWORK_STATEパーミッションが必要 if (BuildCheck.isNougat()) { manager.registerDefaultNetworkCallback(mNetworkCallback); // API>=24 } else if (BuildCheck.isOreo()) { manager.registerDefaultNetworkCallback(mNetworkCallback, mAsyncHandler); // API>=26 } else { manager.registerNetworkCallback(new NetworkRequest.Builder() .build(), mNetworkCallback); // API>=21 } } else { mNetworkChangedReceiver = new NetworkChangedReceiver(this); final IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ACTION_GLOBAL_CONNECTIVITY_CHANGE); requireContext().registerReceiver(mNetworkChangedReceiver, intentFilter); } }