private BluetoothTetheringDataTracker() {
    mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_BLUETOOTH, 0, NETWORKTYPE, "");
    mLinkProperties = new LinkProperties();
    mLinkCapabilities = new LinkCapabilities();

    mNetworkInfo.setIsAvailable(false);
    setTeardownRequested(false);
  }
  public synchronized void stopReverseTether(String iface) {
    NetworkUtils.stopDhcp(iface);

    mLinkProperties.clear();
    mNetworkInfo.setIsAvailable(false);
    mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, null);

    Message msg = mCsHandler.obtainMessage(EVENT_CONFIGURATION_CHANGED, mNetworkInfo);
    msg.sendToTarget();

    msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
    msg.sendToTarget();
  }
  public synchronized void stopReverseTether() {
    // NetworkUtils.stopDhcp(iface);
    if (mDhcpThread != null && mDhcpThread.isAlive()) {
      mDhcpThread.interrupt();
      try {
        mDhcpThread.join();
      } catch (InterruptedException ie) {
        return;
      }
    }
    mLinkProperties.clear();
    mNetworkInfo.setIsAvailable(false);
    mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, null);

    Message msg = mCsHandler.obtainMessage(EVENT_CONFIGURATION_CHANGED, mNetworkInfo);
    msg.sendToTarget();

    msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
    msg.sendToTarget();
  }