Java 类android.net.ConnectivityManager.NetworkCallback 实例源码

项目:chromium-net-for-android    文件:NetworkChangeNotifierTest.java   
@UiThreadTest
@MediumTest
@Feature({"Android-AppBase"})
public void testConnectivityManagerDelegateDoesNotCrash() {
    ConnectivityManagerDelegate delegate =
            new ConnectivityManagerDelegate(getInstrumentation().getTargetContext());
    delegate.getNetworkState();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // getNetworkState(Network) doesn't crash upon invalid Network argument.
        Network invalidNetwork = netIdToNetwork(NetId.INVALID);
        NetworkState invalidNetworkState = delegate.getNetworkState(invalidNetwork);
        assertFalse(invalidNetworkState.isConnected());
        assertEquals(-1, invalidNetworkState.getNetworkType());
        assertEquals(-1, invalidNetworkState.getNetworkSubType());

        Network[] networks = delegate.getAllNetworksUnfiltered();
        if (networks.length >= 1) {
            delegate.getNetworkState(networks[0]);
        }
        delegate.getDefaultNetId();
        NetworkCallback networkCallback = new NetworkCallback();
        NetworkRequest networkRequest = new NetworkRequest.Builder().build();
        delegate.registerNetworkCallback(networkRequest, networkCallback);
        delegate.unregisterNetworkCallback(networkCallback);
    }
}
项目:android-wificonnect    文件:WifiUtil.java   
@TargetApi(LOLLIPOP)
NetworkCallback networkCallback(final String networkSSID,
                                final NetworkStateChangeListener listener) {
    return new NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
            NetworkInfo networkInfo = manager.getNetworkInfo(network);
            logger.i("Network is Available. Network Info: " + networkInfo);

            if (WifiHelper.areEqual(networkInfo.getExtraInfo(), networkSSID)) {
                manager.unregisterNetworkCallback(this);
                networkCallback = null;
                bindToRequiredNetwork(network);
                logger.i(format("Bound application to use %s network", networkSSID));
                listener.onNetworkBound();
            }
        }
    };
}
项目:AppRTC-Android    文件:NetworkMonitorAutoDetect.java   
/** Only callable on Lollipop and newer releases. */
@SuppressLint("NewApi")
public void registerNetworkCallback(NetworkCallback networkCallback) {
  connectivityManager.registerNetworkCallback(
      new NetworkRequest.Builder()
          .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
          .build(),
      networkCallback);
}
项目:AppRTC-Android    文件:NetworkMonitorAutoDetect.java   
/** Only callable on Lollipop and newer releases. */
@SuppressLint("NewApi")
public void requestMobileNetwork(NetworkCallback networkCallback) {
  NetworkRequest.Builder builder = new NetworkRequest.Builder();
  builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
      .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
  connectivityManager.requestNetwork(builder.build(), networkCallback);
}
项目:AppRTC-Android    文件:NetworkMonitorAutoDetect.java   
@SuppressLint("NewApi")
public void releaseCallback(NetworkCallback networkCallback) {
  if (supportNetworkCallback()) {
    Logging.d(TAG, "Unregister network callback");
    connectivityManager.unregisterNetworkCallback(networkCallback);
  }
}
项目:AppRTC-Android    文件:NetworkMonitorAutoDetect.java   
/**
 * Constructs a NetworkMonitorAutoDetect. Should only be called on UI thread.
 */
@SuppressLint("NewApi")
public NetworkMonitorAutoDetect(Observer observer, Context context) {
  this.observer = observer;
  this.context = context;
  connectivityManagerDelegate = new ConnectivityManagerDelegate(context);
  wifiManagerDelegate = new WifiManagerDelegate(context);

  final NetworkState networkState = connectivityManagerDelegate.getNetworkState();
  connectionType = getConnectionType(networkState);
  wifiSSID = getWifiSSID(networkState);
  intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);

  if (PeerConnectionFactory.fieldTrialsFindFullName("IncludeWifiDirect").equals("Enabled")) {
    wifiDirectManagerDelegate = new WifiDirectManagerDelegate(observer, context);
  }

  registerReceiver();
  if (connectivityManagerDelegate.supportNetworkCallback()) {
    // On Android 6.0.0, the WRITE_SETTINGS permission is necessary for
    // requestNetwork, so it will fail. This was fixed in Android 6.0.1.
    NetworkCallback tempNetworkCallback = new NetworkCallback();
    try {
      connectivityManagerDelegate.requestMobileNetwork(tempNetworkCallback);
    } catch (java.lang.SecurityException e) {
      Logging.w(TAG, "Unable to obtain permission to request a cellular network.");
      tempNetworkCallback = null;
    }
    mobileNetworkCallback = tempNetworkCallback;
    allNetworkCallback = new SimpleNetworkCallback();
    connectivityManagerDelegate.registerNetworkCallback(allNetworkCallback);
  } else {
    mobileNetworkCallback = null;
    allNetworkCallback = null;
  }
}
项目:AndroidRTC    文件:NetworkMonitorAutoDetect.java   
/** Only callable on Lollipop and newer releases. */
@SuppressLint("NewApi")
public void registerNetworkCallback(NetworkCallback networkCallback) {
  connectivityManager.registerNetworkCallback(
      new NetworkRequest.Builder()
          .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
          .build(),
      networkCallback);
}
项目:AndroidRTC    文件:NetworkMonitorAutoDetect.java   
/** Only callable on Lollipop and newer releases. */
@SuppressLint("NewApi")
public void requestMobileNetwork(NetworkCallback networkCallback) {
  NetworkRequest.Builder builder = new NetworkRequest.Builder();
  builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
      .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
  connectivityManager.requestNetwork(builder.build(), networkCallback);
}
项目:AndroidRTC    文件:NetworkMonitorAutoDetect.java   
@SuppressLint("NewApi")
public void releaseCallback(NetworkCallback networkCallback) {
  if (supportNetworkCallback()) {
    Logging.d(TAG, "Unregister network callback");
    connectivityManager.unregisterNetworkCallback(networkCallback);
  }
}
项目:AndroidRTC    文件:NetworkMonitorAutoDetect.java   
/**
 * Constructs a NetworkMonitorAutoDetect. Should only be called on UI thread.
 */
@SuppressLint("NewApi")
public NetworkMonitorAutoDetect(Observer observer, Context context) {
  this.observer = observer;
  this.context = context;
  connectivityManagerDelegate = new ConnectivityManagerDelegate(context);
  wifiManagerDelegate = new WifiManagerDelegate(context);

  final NetworkState networkState = connectivityManagerDelegate.getNetworkState();
  connectionType = getConnectionType(networkState);
  wifiSSID = getWifiSSID(networkState);
  intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);

  registerReceiver();
  if (connectivityManagerDelegate.supportNetworkCallback()) {
    // On Android 6.0.0, the WRITE_SETTINGS permission is necessary for
    // requestNetwork, so it will fail. This was fixed in Android 6.0.1.
    NetworkCallback tempNetworkCallback = new NetworkCallback();
    try {
      connectivityManagerDelegate.requestMobileNetwork(tempNetworkCallback);
    } catch (java.lang.SecurityException e) {
      Logging.w(TAG, "Unable to obtain permission to request a cellular network.");
      tempNetworkCallback = null;
    }
    mobileNetworkCallback = tempNetworkCallback;
    allNetworkCallback = new SimpleNetworkCallback();
    connectivityManagerDelegate.registerNetworkCallback(allNetworkCallback);
  } else {
    mobileNetworkCallback = null;
    allNetworkCallback = null;
  }
}
项目:RxNetwork    文件:ShadowConnectivityManagerWithCallback.java   
@Implementation(minSdk = LOLLIPOP)
@RequiresApi(LOLLIPOP)
public void registerNetworkCallback(NetworkRequest request, NetworkCallback networkCallback) {
  networkCallbacks.add(networkCallback);
  // simulate available connection
  networkCallback.onAvailable(getActiveNetwork());
}
项目:RxNetwork    文件:ShadowConnectivityManagerWithCallback.java   
@RequiresApi(LOLLIPOP)
@Implementation(minSdk = LOLLIPOP)
public void unregisterNetworkCallback(NetworkCallback networkCallback) {
  if (networkCallback == null) {
    throw new IllegalArgumentException("Invalid NetworkCallback");
  }
  if (networkCallbacks.contains(networkCallback)) {
    networkCallbacks.remove(networkCallback);
    // simulate lost connection
    networkCallback.onLost(getActiveNetwork());
  }
}
项目:RxNetwork    文件:LollipopNetworkObservingStrategyTest.java   
@Test()
public void shouldRegisterWithDefaultNetworkRequest() {
  NetworkRequest defaultRequest = new NetworkRequest.Builder().build();
  ConnectivityManager manager = setUpManagerWithNetworkRequest(null);

  sut.observe().subscribeWith(testObserver).assertSubscribed();

  verify(manager).registerNetworkCallback(eq(defaultRequest), any(NetworkCallback.class));
}
项目:RxNetwork    文件:LollipopNetworkObservingStrategyTest.java   
@Test()
public void shouldRegisterWithCustomNetworkRequest() {
  NetworkRequest customRequest =
      new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI).build();
  ConnectivityManager manager = setUpManagerWithNetworkRequest(customRequest);

  sut.observe().subscribeWith(testObserver).assertSubscribed();

  verify(manager).registerNetworkCallback(eq(customRequest), any(NetworkCallback.class));
}
项目:RxNetwork    文件:LollipopNetworkObservingStrategyTest.java   
@Test
public void shouldDisposeWithException_whenObserverDisposed() {
  ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
  doReturn(connectivityManager).when(context).getSystemService(CONNECTIVITY_SERVICE);
  doThrow(Exception.class).when(connectivityManager)
      .unregisterNetworkCallback(any(NetworkCallback.class));
  sut = spy(new LollipopNetworkObservingStrategy(context));

  sut.observe().subscribeWith(testObserver).assertSubscribed();
  testObserver.dispose();

  verify(sut).dispose();
  verify(sut).onError(anyString(), any(Exception.class));
  testObserver.isDisposed();
}
项目:RxNetwork    文件:MarshmallowNetworkObservingStrategyTest.java   
@Test()
public void shouldRegisterWithDefaultNetworkRequest() {
  NetworkRequest defaultRequest = new NetworkRequest.Builder().build();
  ConnectivityManager manager = setUpManagerWithNetworkRequest(null);

  sut.observe().subscribeWith(testObserver).assertSubscribed();

  verify(manager).registerNetworkCallback(eq(defaultRequest), any(NetworkCallback.class));
}
项目:RxNetwork    文件:MarshmallowNetworkObservingStrategyTest.java   
@Test()
public void shouldRegisterWithCustomNetworkRequest() {
  NetworkRequest customRequest =
      new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI).build();
  ConnectivityManager manager = setUpManagerWithNetworkRequest(customRequest);

  sut.observe().subscribeWith(testObserver).assertSubscribed();

  verify(manager).registerNetworkCallback(eq(customRequest), any(NetworkCallback.class));
}
项目:RxNetwork    文件:MarshmallowNetworkObservingStrategyTest.java   
private void setupNetworkCallbackUnregisterException() {
  ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
  doReturn(connectivityManager).when(context).getSystemService(Context.CONNECTIVITY_SERVICE);
  doThrow(Exception.class).when(connectivityManager)
      .unregisterNetworkCallback(any(NetworkCallback.class));

  sut = spy(new MarshmallowNetworkObservingStrategy(context));
}
项目:samba-documents-provider    文件:SambaProviderApplication.java   
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();
        }
      });
}
项目:FMTech    文件:NetworkChangeNotifierAutoDetect.java   
public final void a()
{
  if (!this.h) {}
  do
  {
    return;
    this.c.unregisterReceiver(this);
    this.h = false;
  } while (this.f == null);
  rja localrja = this.e;
  ConnectivityManager.NetworkCallback localNetworkCallback = this.f;
  localrja.a.unregisterNetworkCallback(localNetworkCallback);
}
项目:FMTech    文件:NetworkChangeNotifierAutoDetect$RegistrationPolicy.java   
protected final void a()
{
  NetworkChangeNotifierAutoDetect localNetworkChangeNotifierAutoDetect = this.a;
  if (!localNetworkChangeNotifierAutoDetect.h)
  {
    rjh localrjh = rja.a(localNetworkChangeNotifierAutoDetect.e.a.getActiveNetworkInfo());
    localNetworkChangeNotifierAutoDetect.c(localrjh);
    localNetworkChangeNotifierAutoDetect.d(localrjh);
    localNetworkChangeNotifierAutoDetect.c.registerReceiver(localNetworkChangeNotifierAutoDetect, localNetworkChangeNotifierAutoDetect.a);
    localNetworkChangeNotifierAutoDetect.h = true;
    if (localNetworkChangeNotifierAutoDetect.f != null)
    {
      rja localrja = localNetworkChangeNotifierAutoDetect.e;
      NetworkRequest localNetworkRequest = localNetworkChangeNotifierAutoDetect.g;
      ConnectivityManager.NetworkCallback localNetworkCallback = localNetworkChangeNotifierAutoDetect.f;
      localrja.a.registerNetworkCallback(localNetworkRequest, localNetworkCallback);
      Network[] arrayOfNetwork = localNetworkChangeNotifierAutoDetect.e.a.getAllNetworks();
      int[] arrayOfInt = new int[arrayOfNetwork.length];
      for (int i = 0; i < arrayOfNetwork.length; i++) {
        arrayOfInt[i] = Integer.parseInt(arrayOfNetwork[i].toString());
      }
      localNetworkChangeNotifierAutoDetect.b.a(arrayOfInt);
    }
  }
}
项目:chromium-net-for-android    文件:NetworkChangeNotifierAutoDetect.java   
/**
 * Registers networkCallback to receive notifications about networks
 * that satisfy networkRequest.
 * Only callable on Lollipop and newer releases.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
void registerNetworkCallback(
        NetworkRequest networkRequest, NetworkCallback networkCallback) {
    mConnectivityManager.registerNetworkCallback(networkRequest, networkCallback);
}
项目:chromium-net-for-android    文件:NetworkChangeNotifierAutoDetect.java   
/**
 * Unregisters networkCallback from receiving notifications.
 * Only callable on Lollipop and newer releases.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
void unregisterNetworkCallback(NetworkCallback networkCallback) {
    mConnectivityManager.unregisterNetworkCallback(networkCallback);
}
项目:chromium-net-for-android    文件:NetworkChangeNotifierTest.java   
@Override
public void unregisterNetworkCallback(NetworkCallback networkCallback) {}
项目:chromium-net-for-android    文件:NetworkChangeNotifierTest.java   
@Override
public void registerNetworkCallback(
        NetworkRequest networkRequest, NetworkCallback networkCallback) {
    mLastRegisteredNetworkCallback = networkCallback;
}
项目:chromium-net-for-android    文件:NetworkChangeNotifierTest.java   
public NetworkCallback getLastRegisteredNetworkCallback() {
    return mLastRegisteredNetworkCallback;
}
项目:RxNetwork    文件:ShadowConnectivityManagerWithCallback.java   
public Set<NetworkCallback> getNetworkCallbacks() {
  return networkCallbacks;
}
项目:365browser    文件:NetworkChangeNotifierAutoDetect.java   
/**
 * Registers networkCallback to receive notifications about networks
 * that satisfy networkRequest.
 * Only callable on Lollipop and newer releases.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
void registerNetworkCallback(
        NetworkRequest networkRequest, NetworkCallback networkCallback) {
    mConnectivityManager.registerNetworkCallback(networkRequest, networkCallback);
}
项目:365browser    文件:NetworkChangeNotifierAutoDetect.java   
/**
 * Unregisters networkCallback from receiving notifications.
 * Only callable on Lollipop and newer releases.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
void unregisterNetworkCallback(NetworkCallback networkCallback) {
    mConnectivityManager.unregisterNetworkCallback(networkCallback);
}