@Override
  protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    if (mReceiver != null) {
      unregisterReceiver(mReceiver);
      // mReceiver = null;
    }
    if (mReceiver2 != null) {
      unregisterReceiver(mReceiver2);
      // mReceiver2 = null;
    }

    BluetoothAdapter mBluetoothAdapter1 = BluetoothAdapter.getDefaultAdapter();
    mBluetoothAdapter1.cancelDiscovery();
    // mBluetoothAdapter1.disable();
    // mBluetoothAdapter1.enable();

    MainActivity.VAR_BLUETOOTH_DISCOVERY.open();
  }
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search_inof);

    Intent data = this.getIntent();

    final String name = data.getStringExtra(SearchDevice.DEV_NAME);
    final String macInfo = data.getStringExtra(SearchDevice.DEV_MAC);
    photoPath = data.getStringExtra(SearchDevice.DEV_IMAGENAME);
    if (null != photoPath) {
      Uri path = Uri.parse(photoPath);
      devicePic = (ImageView) findViewById(R.id.imageview1);
      devicePic.setImageURI(path);
    }

    TextView tvName = (TextView) findViewById(R.id.tvSearchName);
    // distance_tv = (TextView)findViewById(R.id.tvSearchDistanceValue);

    // signalView = (ImageView)findViewById(R.id.imageView);

    // signal none-dot-part image view
    signal_ndot_iv = (ImageView) findViewById(R.id.imageView);
    // TextView mac_tv = (TextView)findViewById(R.id.mac_tv);
    // mac_tv.setText(macInfo);

    // dot image view
    dot_iv = (ImageView) findViewById(R.id.signal_dot);

    dot_iv.setImageResource(R.drawable.signal_dot_0);
    animate(dot_iv, imagesToShow, 0, true);

    tvName.setText(name);
    final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    // final TextView tvRSSI = (TextView)findViewById(R.id.tvSearchRSSIValue);
    // tvRSSI.setText("Acquiring RSSI value...");

    MainActivity.VAR_BLUETOOTH_DISCOVERY.close();
    mBluetoothAdapter.cancelDiscovery();

    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

    /** Receiver #1 handles RSSI and Signal View */
    mReceiver =
        new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            String action = intent.getAction();
            // When discovery finds a device
            if (BluetoothDevice.ACTION_FOUND.equals(action)) {
              // Get the BluetoothDevice object from the Intent
              BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

              if (device.getAddress() != null && device.getAddress().equals(macInfo)) {
                if (device.getBondState() != BluetoothDevice.BOND_BONDED) {

                  // 信号强度。
                  short rssi = intent.getExtras().getShort(BluetoothDevice.EXTRA_RSSI);

                  float newRssi = calculateFinalRssi(rssi);
                  float dis = calculateDistance(newRssi);

                  // tvRSSI.setText(String.valueOf(rssi));

                  /** Graphic Part */
                  if (newRssi < -80) {
                    imagesToShow[0] = R.drawable.signal_dot_1;
                    signal_ndot_iv.setImageResource(R.drawable.signal_1);
                    // distance_tv.setText(dis+" cm");
                  } else if (newRssi < -60) {
                    imagesToShow[0] = R.drawable.signal_dot_2;
                    signal_ndot_iv.setImageResource(R.drawable.signal_2);
                    // distance_tv.setText(dis+" cm");
                  } else if (newRssi < -40) {
                    imagesToShow[0] = R.drawable.signal_dot_3;
                    signal_ndot_iv.setImageResource(R.drawable.signal_3);
                    // distance_tv.setText(dis+" cm");
                  } else if (newRssi < 0) {
                    imagesToShow[0] = R.drawable.signal_dot_4;
                    signal_ndot_iv.setImageResource(R.drawable.signal_4);
                    // distance_tv.setText(dis+" cm");
                  }
                  mBluetoothAdapter.cancelDiscovery();
                }
              }
            }
          }
        };
    registerReceiver(mReceiver, filter);

    IntentFilter filter2 = new IntentFilter();
    filter2.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);

    /** Receiver #2 Handles end of receiving */
    mReceiver2 =
        new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
              mBluetoothAdapter.startDiscovery();
            }
          }
        };
    registerReceiver(mReceiver2, filter2);
    if (!mBluetoothAdapter.isEnabled()) {
      mBluetoothAdapter.enable();
    }

    mBluetoothAdapter.startDiscovery();
  }