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

BLE GATTCALLBACK에서 disconnect 경우에 재연결

0 추천

BLE GATTCALLBACK에서 disconnect 경우에 재연결하려고 합니다.

Autoconnect false로 하였습니다.

 

주소는 밑에 로그창에 보듯이 받아오는데

mService.connectDevice에서 nullpointerexception이 나는 거같은데 왜 그런건가요?

mService가 Nullpointerexception인데 왜 널포인터인지 모르겠습니다.ㅠㅠ

     private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
         @Override
         public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
             if (newState == BluetoothProfile.STATE_CONNECTED) {
                 mState = STATE_CONNECTED;
                 check_mState=mState;
            mHandler.sendMessage(msg);
                 Log.d(TAG, "# Connected to GATT server.");
                 mHandler.obtainMessage(ServiceClass.MESSAGE_STATE_CHANGE, STATE_CONNECTED, 0).sendToTarget();
                 
                 gatt.discoverServices();
                 
             } else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
                 mState = STATE_IDLE;
                 check_mState=mState;
            
                
                 Log.d(TAG, "# Disconnected from GATT server.");
                 mHandler.obtainMessage(ServiceClass.MESSAGE_STATE_CHANGE, STATE_IDLE, 0).sendToTarget();
                 mBluetoothGatt = null;
                 mGattServices.clear();
                 mDefaultService = null;
            mGattCharacteristics.clear();
            mWritableCharacteristics.clear();
                 mDefaultChar = null;
                 mDefaultDevice = null;
                 Log.d(TAG, bluetooth_addr);
                 mService.connectDevice(bluetooth_addr);
             }
         }

W/BluetoothGatt(11372): Unhandled exception in callback
java.lang.NullPointerException: Attempt to invoke virtual method 'void healthall.company.water_bottle_ble.ServiceClass.connectDevice(java.lang.String)' on a null object reference
at healthall.company.water_bottle_ble.BleManager$1.onConnectionStateChange(BleManager.java:489)
at android.bluetooth.BluetoothGatt$1.onClientConnectionState(BluetoothGatt.java:186)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:70)
at android.os.Binder.execTransact(Binder.java:461)

쿠쿠부다스 (6,470 포인트) 님이 2016년 2월 3일 질문
쿠쿠부다스님이 2016년 2월 3일 수정

답변 달기

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