안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
갤럭시S와 외부 기기를 블루투스 Serial Port Profile(SPP)방식으로 통신 하고 있습니다.
프로그램은 안드로이드 개발자 사이트에 있는 Bluetooth Chat 예제를 이용하고 있고
UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 만 SPP UUID로 변경 했습니다.
BluetoothChat(메인 Activity)에 TabView를 생성하고 그래프를 그리고 있습니다.
질문 하고자 하는 내용 입니다.
문제점 1.
외부기기에서 초당 1600byte를 SPP로 BluetoothChatService(Bluetooth Socket통신 용 Thread)에서 수신 합니다.
일반 클래스이고 Thread로 수신 하는 방식이라 Handler로 데이터를 Main Activity에 전송 하는데 문제는
데이터 손실이 있습니다. 약 5분의 1만 전송이 되는 것 같습니다.(Log 메시지로 확인)
문제점 2.
Main Activity에서 생성한 TabView에 데이터를 바로 전송 하는 방식으로 변경 해보았습니다.
BluetoothChatService클래스에서 View클래스를 메소드 변수?로 생성하고 mView(메소드).draw(data)
데이터는 함수 인자값으로 전달 하니까 데이터 손실없이 잘 되었습니다.
그런데 문제는 View가 Activity에서 this로 생성 되어서 그런가 invalidate()가 안됩니다.
그래서 데이터 전송은 되는데 그래프가 그려지지 않는 현상이 있습니다.
감사합니다.
갤럭시S와 외부 기기를 블루투스 Serial Port Profile(SPP)방식으로 통신 하고 있습니다.
프로그램은 안드로이드 개발자 사이트에 있는 Bluetooth Chat 예제를 이용하고 있고
UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 만 SPP UUID로 변경 했습니다.
BluetoothChat(메인 Activity)에 TabView를 생성하고 그래프를 그리고 있습니다.
질문 하고자 하는 내용 입니다.
문제점 1.
외부기기에서 초당 1600byte를 SPP로 BluetoothChatService(Bluetooth Socket통신 용 Thread)에서 수신 합니다.
일반 클래스이고 Thread로 수신 하는 방식이라 Handler로 데이터를 Main Activity에 전송 하는데 문제는
데이터 손실이 있습니다. 약 5분의 1만 전송이 되는 것 같습니다.(Log 메시지로 확인)
문제점 2.
Main Activity에서 생성한 TabView에 데이터를 바로 전송 하는 방식으로 변경 해보았습니다.
BluetoothChatService클래스에서 View클래스를 메소드 변수?로 생성하고 mView(메소드).draw(data)
데이터는 함수 인자값으로 전달 하니까 데이터 손실없이 잘 되었습니다.
그런데 문제는 View가 Activity에서 this로 생성 되어서 그런가 invalidate()가 안됩니다.
그래서 데이터 전송은 되는데 그래프가 그려지지 않는 현상이 있습니다.
감사합니다.
mView = new View(context); context 인자값을 잘 설정 하면 invalidate()를 실행 할 것 같은데
방법을 알려주시면 감사하겠습니다.