이것은 스레딩 문제 일 가능성이 높습니다. Samsung Galaxy S4 장치에서 BLE와 매우 유사한 문제가 발생했습니다. 삼성의 Android 구현은 다른 것보다 BLE를 다르게 처리하는 것으로 보입니다 (Nexus 7 기기는 정상적으로 작동 함). 하지만 UI 스레드에서 BLE connectGatt 메서드를 명시 적으로 실행해야합니다. 다음은 그 예입니다.
// Create handler for main thread where mContext is application context
mHandler = new Handler(mContext.getMainLooper());
...
// Connect to BLE device from mHandler
mHandler.post(new Runnable() {
@Override
public void run() {
mBTGatt = mBTDevice.connectGatt(mContext, false, mGattCallback);
}
});
출처
https://stackoverflow.com/questions/22049920