2011-10-05 5 views
0

안드로이드 (HF 측) 용 핸즈프리 블루투스 프로파일을 구현하려고합니다. 나는 rfcomm을 통해 성공적으로 연결되었으며, AG로부터 /로 AT 명령을 보내거나받을 수 있습니다. 그러나 목소리는 어떨까요? 설명서에서 동기식 연결에 대해 읽었으며 SCO 소켓에서 연결을 허용하려고 시도했습니다.안드로이드 자신의 블루투스 프로파일 구현

int sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_SCO) 

아무 반응이 없습니다.

올바른 종류의 소켓입니까, 아니면 SCO와 다른 것이 필요합니까?

+0

프로필 구현에 성공 했습니까? – Mudassir

+0

아니요, SCOlink를 만들 때 문제를 해결하지 못했습니다. – Vbif

+0

몇 가지 해결 방법이 있습니다 ..? – Mudassir

답변

0

frameworks/base/core/java/android/bluetooth에있는 ScoSocket.java 클래스에서 영감을 얻을 수 있습니다. socket(AF_BLUETOOTH...)이 아닌 네이티브 함수를 호출하는 것을 볼 수 있습니다. 전화 앱에서 사용한 것처럼, 당신은 그것에 의존 할 수 있습니다.

/** Connect this SCO socket to the given BT address. 
* Does not block. 
*/ 
public synchronized boolean connect(String address, String name) { 
    if (DBG) log("connect() " + this); 
    if (mState != STATE_READY) { 
     if (DBG) log("connect(): Bad state"); 
     return false; 
    } 
    acquireWakeLock(); 
    if (connectNative(address, name)) { 
     mState = STATE_CONNECTING; 
     return true; 
    } else { 
     mState = STATE_CLOSED; 
     releaseWakeLockNow(); 
     return false; 
    } 
} 
private native boolean connectNative(String address, String name); 
관련 문제