@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); } }
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(); } }); }
android.net.NetworkRequest.Builder builder = new android.net.NetworkRequest.Builder(); builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); builder.removeTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
public class ConnectionStateMonitor extends NetworkCallback { final NetworkRequest networkRequest; public ConnectionStateMonitor() { networkRequest = new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(); } public void enable(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); connectivityManager.registerCallback(networkRequest); } // Likewise, you can have a disable method that simply calls ConnectivityManager#unregisterCallback(networkRequest) too. @Override public void onAvailable(Network network) { // Do what you need to do here } }
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest request = new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .build(); cm.requestNetwork(request, new ConnectivityManager.NetworkCallback() { void onAvailable(Network network) { // Do something once the network is available } });
/** 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); }
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); } }
NetworkRequest request = new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(); final ConnectivityManager manager = getSystemService(ConnectivityManager.class); manager.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback(){ @Override public void onAvailable(Network network) { NetworkInfo info = manager.getNetworkInfo(network); Log.v(TAG, "== NETWORK type: " + info.getTypeName() + "[" + info.getSubtypeName() + "], state: " + info.getDetailedState()); });
android.net.NetworkRequest.Builder builder = new android.net.NetworkRequest.Builder(); builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); builder.removeTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); builder.addCapability(NetworkCapabilities.TRANSPORT_CELLULAR); builder.addCapability(NetworkCapabilities.TRANSPORT_WIFI);
/** 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); }
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; } }
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE); cm.requestNetwork(new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .setNetworkSpecifier("XX:XX:XX:XX:XX:XX") .build(), new ConnectivityManager.NetworkCallback() { void onAvailable(Network network) { } });
@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); }