2014-01-13 5 views
0

내 응용 프로그램이 연결되어 HC-05 Bluetooth 모듈과 쌍을 이뤄야하는 블루투스를 사용하여 가정용 장치를 제어하는 ​​데 응용 프로그램을 사용하고 있지만 문제가 발생했습니다. HC-05 블루투스 모듈의 MAC 주소 인 20 : 13 : 06 : 19 : 34 : 00을 제외한 다른 MAC 주소를 잡기 위해 내 HC-05를 포함하여 모든 블루투스 장치를 트래핑합니다. 여기에는 내 MAC 주소가 포함되어 있습니다. 그래서 여기 내 응용 프로그램의 특정 MAC 주소에 대한 트래핑 실패

내가 트랩 MAC 주소가 일부입니다

case REQUEST_DEVICE_CONNECT: 
      String HC05 = "4C:0F:6E:0F:12:F4"; 
       // When DeviceList Activity returns with a device to connect 
       if (resultCode == Activity.RESULT_OK) { 
        // Get the device MAC address 
        //String address = data.getExtras().getString(DeviceList.EXTRA_DEVICE_MAC_ADDRESS); 
        String address = new String(data.getExtras().getString(DeviceList.EXTRA_DEVICE_MAC_ADDRESS)); 
        if (address == HC05) 
        { 
         // Get the BLuetoothDevice object 
         BluetoothDevice device = BTAdapter.getRemoteDevice(address); 
         // Attempt to connect to the device 
         commandService.connect(device); 
        } 
        else if (address != HC05) 
        { 
         Toast.makeText(this, "This device is not for JavaC101 Application. Please connect to HC-05 device.", Toast.LENGTH_LONG).show(); 
        } 
       } 
       break; 

이미 다른 가능성을 시도하지만 여전히 나는이 기능 실패입니다. 어쨌든 안드로이드 앱을 만드는 나의 처음. 어떤 도움이라도 대단히 감사 할 것입니다. 고맙습니다.

답변

0
address == HC05 

이것은 java에서 참조로 비교됩니다. 당신은 문자열 비교를 원한다.

대신 address.equals(HC05)을 시도하십시오. 참고로

(마찬가지로, address != HC05!address.equals(HC05)해야하거나 특정한 경우에, 당신은 단지 elseelse if을 대체 할 수있다) : Java comparison with == of two strings is false?

+0

너무 감사합니다! 이제 작동합니다. :)) – itsJane