private void scanAllNetworks()

in packages/@fbcmobile-signalscan/android/src/main/java/com/fbc/signalscan/CellScanResultsModule.java [194:254]


  private void scanAllNetworks(final TelephonyManager teleManager) {
    Log.d(TAG, "performing network scan using scanAllNetworks()");
    RadioAccessSpecifier[] radioAccesses = {
      /* gsm */
      new RadioAccessSpecifier(AccessNetworkConstants.AccessNetworkType.GERAN, null, null),
      /* lte */
      new RadioAccessSpecifier(AccessNetworkConstants.AccessNetworkType.EUTRAN, null, null),
      /* wcdma */
      new RadioAccessSpecifier(AccessNetworkConstants.AccessNetworkType.UTRAN, null, null)
    };

    class NetworkScanCallback extends TelephonyScanManager.NetworkScanCallback {

      private Promise promise;
      private List<CellInfo> cellList;

      private NetworkScanCallback(Promise promise) {
        super();
        this.promise = promise;
      }

      @Override
      public void onResults(List<CellInfo> results) {
        Log.d(TAG, String.format("receive network scan results: %s", results.toString()));
        this.cellList = results;
      }

      @Override
      public void onError(int error) {
        Log.d(
            TAG,
            String.format(
                "requestNetworkScan failed with error %d, falling back to scanRegisteredNetwork()",
                error));
        scanRegisteredNetwork(teleManager);
      }

      @Override
      public void onComplete() {
        Log.d(TAG, "network scan complete");
        WritableMap map = processCellScanResults(teleManager, this.cellList);
        this.promise.resolve(map);
      }
    }

    NetworkScanRequest mRequest =
        new NetworkScanRequest(
            NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
            radioAccesses,
            6, // period to restart scan (in seconds) if no network found, not used for one shot but
            // scan must be greater than 5 to pass request validation
            61, // maximum duration of search (in seconds).  Must be greater than 60
            // to pass request validation
            true, // whether to report incremental scan results, not used for one shot scan
            3, // period to report incremental scan results (in seconds)
            null // terminate scan once any network in the list is found
            );
    this.mNetworkScan =
        teleManager.requestNetworkScan(
            mRequest, AsyncTask.SERIAL_EXECUTOR, new NetworkScanCallback(this.mPromise));
  }