@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); }
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) { } });
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 requestMobileNetwork(NetworkCallback networkCallback) { NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addCapability(NET_CAPABILITY_INTERNET).addTransportType(TRANSPORT_CELLULAR); connectivityManager.requestNetwork(builder.build(), networkCallback); }
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(); connectivityManager.requestNetwork(request, new ConnectivityManager.NetworkCallback()
connectivityManager.requestNetwork( mNetworkRequest, mNetworkCallback); } catch (SecurityException e) {
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); } } }); } }
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 } });
private void listenNetworkConnectivity() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { connectivityManager.requestNetwork(new NetworkRequest.Builder().build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { super.onAvailable(network); Log.d(TAG, "onAvailable()"); DaemonHolder.startService(); } @Override public void onUnavailable() { super.onUnavailable(); Log.d(TAG, "onUnavailable()"); DaemonHolder.startService(); } @Override public void onLost(Network network) { super.onLost(network); Log.d(TAG, "onLost()"); DaemonHolder.startService(); } }); } } }
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { final ConnectivityManager manager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder; builder = new NetworkRequest.Builder(); //set the transport type do WIFI builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); manager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { manager.bindProcessToNetwork(network); } else { //This method was deprecated in API level 23 ConnectivityManager.setProcessDefaultNetwork(network); } try { //do a callback or something else to alert your code that it's ok to send the message through socket now } catch (Exception e) { e.printStackTrace(); } manager.unregisterNetworkCallback(this); } }); }
cm.requestNetwork(request, new ConnectivityManager.NetworkCallback() {