Вы можете черпать вдохновение из класса ScoSocket.java
, расположенного в frameworks/base/core/java/android/bluetooth
. Вы увидите, что он вызывает собственные функции, а не 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);