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

android usb 통신에서 bulktranfer 시 -1값이 리턴됩니다. OTG 통신관련

0 추천
핸드폰과 usb캠카메라를 OTG를 이용하여 핸드폰으로 출력시킬려고 하는데요

우선적으로 리눅스 PC에서 USB통신을 이용하여 영상을 출력해본상태에서 안드로이드에서 우선적으로 영상이 들어오는지 확인하는 작업을 하려고 하고 있습니다.

전체 적인 안드로이드 소스구조는

onCreate 에서 초기화 및 디바이스퍼미션얻고 시작버튼을 클릭시 스레드를 돌려서 데이터를 얻고 있는데요 데이터를 얻을때 bulktranfer시 -1값이 리턴되고 있습니다.

----------시작버튼----

public void mtfReadFromDevice() {
        int r;

        r = connection.bulkTransfer(endpoint_IN, buffer, buffer.length, 0);
        if (r < 0)
        {
                   //-1값 리턴중
        }

        //check
        if(nCheckData[0] == (buffer[0] & 0xFF) )
        {
            Message msg = mMainHandler.obtainMessage();
            msg.what = SEND_MESSAGE_BULK;
            msg.arg1 = Integer.valueOf(nGetbulkCount++);
            mMainHandler.sendMessage(msg);
        }
    }

bulktranfer 를 이용해서 얻어와야 하는 데이터는 320*240*2 byte 사이즈인데 첫 프레임만 한번 들어오고 계속 -1값이

리턴되어서 값이 안들어오고 있습니다

 

제가 확인해본 사항으로는 endpoint 쪽은 확인을 한 상태이고

리눅스 PC에서는 USB2.0으로 안드로이드에서는 OTG를 연결하여 통신속도가 더 나지 않는 상태일거라고 짐작을 하는데요

안드로이드에서 시작을 눌렀을경우 제대로된 프레임이 계속 들어오게 하려면 어떤방법을 이나 확인이 더 필요한것인지 궁금합니다.

데이터를 읽어들이는 순서는 리눅스PC에서 USB통신했던 구조 그대로 사용하여 문제가 없을거라 생각이 되는데

OTG에서 통신을 제대로 할수 있는것인가에 대해서 의문이 가네요..
oblab (1,490 포인트) 님이 2015년 7월 21일 질문

답변 달기

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