마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

readRemoteRssi 작동이 이상합니다.

0 추천

api 설명을 참조해서, 연결된 ble기기의 수신세기를 출력하는 코드를 짜고 있습니다.

BluetoothGattCallback 내부에서 다음과 같이 처리했습니다.

@Override
        public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
            String intentAction;
            if (newState == BluetoothProfile.STATE_CONNECTED) 
            {
                intentAction = ACTION_GATT_CONNECTED;
                mConnectionState = STATE_CONNECTED;
                mBluetoothGatt.readRemoteRssi();
                broadcastUpdate(intentAction);
            } else if (newState == BluetoothProfile.STATE_DISCONNECTED) 
            {
              //연결 끊어짐 - 생략

state상태가 connect로 처리되면 mBluetoothGatt.readRemoteRssi();로 

onReadRemoteRssi 메서드를 호출합니다.

@Override
		public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) 
		{
			Log.e("1:::::::::::::rssi::::::::",rssi+"");
			mBluetoothGatt.readRemoteRssi();//true
			super.onReadRemoteRssi(gatt, rssi, status);
		}

한번 onReadRemoteRssi를 호출하면 ,또 다시 호출해주기 위해[계속]

내부에서도 readRemoteRssi()를 넣었습니다.

두개의 폰으로 테스트 했을 때.. 잘될 때는 호출이 잘 되어 rssi값이 갱신되서 log로 출력되는데,

어쩔 땐 readRemoteRssi가 동작되지 않습니다..

readRemoteRssi값이 true면, 정상적으로 rssi값을 받을 수있다는 걸로 알고있는데..

혹시 몰라 boolean 변수로 확인해보니 이것도 true구요.. 

구글에 검색을해도 ㅇ제가 쓴 예제 코드만이 전부인지라;; 혹시 이런 현상을 겪으신 분이나 아시는 분이 있으신지...질문글 올려봅니다.

 

망고사탕 (5,000 포인트) 님이 2015년 10월 2일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...