@TargetApi(23) private void registerNetworkCallbackV23() { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest request = new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) .build(); networkCallback = new CapabilityValidatedCallback(); connectivityManager.registerNetworkCallback(request, networkCallback); }
private void checkConnectivity() { final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); connected = activeNetworkInfo != null && activeNetworkInfo.isConnected(); if (!connected) { loading.setVisibility(View.GONE); if (noConnection == null) { final ViewStub stub = findViewById(R.id.stub_no_connection); noConnection = (ImageView) stub.inflate(); } final AnimatedVectorDrawable avd = (AnimatedVectorDrawable) getDrawable(R.drawable.avd_no_connection); if (noConnection != null && avd != null) { noConnection.setImageDrawable(avd); avd.start(); } connectivityManager.registerNetworkCallback( new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(), connectivityCallback); monitoringConnectivity = true; } }
private void checkConnectivity(View view) { final ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); connected = activeNetworkInfo != null && activeNetworkInfo.isConnected(); if (!connected && progress != null) {//不判断容易抛出空指针异常 progress.setVisibility(View.INVISIBLE); if (noConnectionText == null) { ViewStub stub_text = (ViewStub) view.findViewById(R.id.stub_no_connection_text); noConnectionText = (TextView) stub_text.inflate(); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { connectivityManager.registerNetworkCallback( new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(), connectivityCallback); monitoringConnectivity = true; } } }
private void createChangeConnectivityMonitor() { NetworkRequest networkRequest = new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(); networkCallback = new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { Log.i(TAG, "On available network"); sync(); } @Override public void onLost(Network network) { Log.i(TAG, "On not available network"); disconnect(); } }; ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { connectivityManager.registerNetworkCallback(networkRequest, networkCallback); } }
public static void forceConnectionToMobile2(Context context) { final ConnectivityManager connection_manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { NetworkRequest.Builder request = new NetworkRequest.Builder(); Log.d(TAG,"request TRANSPORT_CELLULAR"); request.addCapability(NetworkCapabilities.TRANSPORT_CELLULAR); connection_manager.requestNetwork(request.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Log.d(TAG,"binding app to cellular network"); connection_manager.bindProcessToNetwork(network); } } }); } }
private void registerNetworkCallback(Context context) { final ConnectivityManager manager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE); manager.registerNetworkCallback( new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET) .build(), new NetworkCallback() { @Override public void onAvailable(Network network) { mSambaClient.reset(); } }); }
/** Only callable on Lollipop and newer releases. */ @SuppressLint("NewApi") public void registerNetworkCallback(NetworkCallback networkCallback) { connectivityManager.registerNetworkCallback( new NetworkRequest.Builder().addCapability(NET_CAPABILITY_INTERNET).build(), networkCallback); }
//bind to current thread if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder request = new NetworkRequest.Builder(); request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); connManager.registerNetworkCallback(request.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { ConnectivityManager.setProcessDefaultNetwork(network); //... } }); }
public static void register() { if(_impl == null) { _impl = new ConnectivityNetworkCallback(); ConnectivityManager cm = (ConnectivityManager) ClientProperties.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); cm.registerNetworkCallback(new NetworkRequest.Builder().build(), _impl); } }
ConnectivityManager cManager = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder = new Builder(); //Indicates that this network should be able to reach the internet. builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); NetworkRequest build = builder.build(); cManager.requestNetwork(build, new NetworkCallback() { @Override public void onAvailable(Network network) { super.onAvailable(network); // do what you want to do here } });`
NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addCapability(NetworkCapabilities.NET_CAPABILITY_MMS); builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); NetworkRequest networkRequest = builder.build(); mConnMgr.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { super.onAvailable(network); dialog.dismiss(); sendNormalMms(); } });
private void onNewCardsAvailable(List<Card> cards) { mSwipeRefreshLayout.setRefreshing(false); mAdapter.updateItems(cards); if (!NetUtils.isConnected(this) && !mIsConnectivityChangeReceiverRegistered) { NetworkRequest request = new NetworkRequest.Builder() .addCapability(NetUtils.getInternetCapability()) .build(); connectivityManager.registerNetworkCallback(request, networkCallback); mIsConnectivityChangeReceiverRegistered = true; } }
/** Only callable on Lollipop and newer releases. */ @SuppressLint("NewApi") public void requestMobileNetwork(NetworkCallback networkCallback) { NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addCapability(NET_CAPABILITY_INTERNET).addTransportType(TRANSPORT_CELLULAR); connectivityManager.requestNetwork(builder.build(), networkCallback); }
ConnectivityManager cm; cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder req = new NetworkRequest.Builder(); req.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); req.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); cm.requestNetwork(req.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { //here you can use bindProcessToNetwork } });
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void registerConnectivityActionLollipop() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder = new NetworkRequest.Builder(); connectivityManager.registerNetworkCallback(builder.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { Intent intent = new Intent(CONNECTIVITY_ACTION_LOLLIPOP); intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); sendBroadcast(intent); } @Override public void onLost(Network network) { Intent intent = new Intent(CONNECTIVITY_ACTION_LOLLIPOP); intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true); sendBroadcast(intent); } }); }
@Override public Observable<Connectivity> observeNetworkConnectivity(final Context context) { final String service = Context.CONNECTIVITY_SERVICE; final ConnectivityManager manager = (ConnectivityManager) context.getSystemService(service); networkCallback = createNetworkCallback(context); registerIdleReceiver(context); final NetworkRequest request = new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) .build(); manager.registerNetworkCallback(request, networkCallback); return connectivitySubject.toFlowable(BackpressureStrategy.LATEST).doOnCancel(new Action() { @Override public void run() { tryToUnregisterCallback(manager); tryToUnregisterReceiver(context); } }).startWith(Connectivity.create(context)).distinctUntilChanged().toObservable(); }
@TargetApi(23) private void listenNetworkViaConnectivityManager(final Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest request = new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) .build(); cm.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { dispatchNetworkChange(context); } }); }
@Test @Config(minSdk = LOLLIPOP) public void unregisterCallback_shouldRemoveCallbacks() throws Exception { NetworkRequest.Builder builder = new NetworkRequest.Builder(); // Add two different callbacks. ConnectivityManager.NetworkCallback callback1 = createSimpleCallback(); ConnectivityManager.NetworkCallback callback2 = createSimpleCallback(); connectivityManager.registerNetworkCallback(builder.build(), callback1); connectivityManager.registerNetworkCallback(builder.build(), callback2); // Remove one at the time. assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).hasSize(2); connectivityManager.unregisterNetworkCallback(callback2); assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).hasSize(1); connectivityManager.unregisterNetworkCallback(callback1); assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).isEmpty(); }
@Test @Config(minSdk = LOLLIPOP) public void requestNetwork_shouldAddCallback() throws Exception { NetworkRequest.Builder builder = new NetworkRequest.Builder(); ConnectivityManager.NetworkCallback callback = createSimpleCallback(); connectivityManager.requestNetwork(builder.build(), callback); assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).hasSize(1); }
@Test @Config(minSdk = LOLLIPOP) public void registerCallback_shouldAddCallback() throws Exception { NetworkRequest.Builder builder = new NetworkRequest.Builder(); ConnectivityManager.NetworkCallback callback = createSimpleCallback(); connectivityManager.registerNetworkCallback(builder.build(), callback); assertThat(shadowOf(connectivityManager).getNetworkCallbacks()).hasSize(1); }