Как маршрутизировать аудио для входящего соединения SCO? - PullRequest
0 голосов
/ 31 августа 2010

Я разрабатываю приложение для гарнитуры / громкой связи и запускаю его на демо-плате. После успешного подключения к телефону, когда приложение считывает данные с телефона, я звоню или играю музыку с телефона. издает звуки и так же, как и у demoboard. Теперь в системном журнале отображается сообщение «Отклонение входящего соединения SCO», почему? Как маршрутизировать звук для входящего соединения SCO? Как я могу услышать плату?

код,

private boolean connected = false;
private BluetoothSocket sock;
private InputStream in;
private boolean running = true;
public void test() throws Exception {
    if (connected) {
        return;
    }

    BluetoothDevice zee = BluetoothAdapter.getDefaultAdapter().getRemoteDevice("00:1C:D4:F7:7F:FD");//The phone's address
    UUID myUuid = UUID.fromString("00001112-0000-1000-8000-00805f9b34fb");//headset uuid
    sock = zee.createRfcommSocketToServiceRecord(myUuid);
    Log.d(TAG, "++++ Connecting " + zee.getName());
    sock.connect();
    Log.d(TAG, "++++ Connected " + sock.toString());
    in = sock.getInputStream();
    byte[] buffer = new byte[50];
    int read = 0;
    Log.d(TAG, "++++ Listening...");
    running = true;
    try {
        while (running) {
            read = in.read(buffer);
            connected = true;
            StringBuilder buf = new StringBuilder();
            for (int i = 0; i < read; i++) {
                int b = buffer[i] & 0xff;
                if (b < 0x10) {
                    buf.append("0");
                }
                buf.append(Integer.toHexString(b)).append(" ");
            }
            Log.d(TAG, "++++ Read "+ read +" bytes: "+ buf.toString());
        }
    } catch (IOException e) {
     Log.e(TAG, "++++ IOException e:" + e.toString());
    }

    connected = false;
    Log.d(TAG, "++++ Done: test()");
}

Ответы [ 2 ]

1 голос
/ 15 февраля 2012
AudioManager localAudioManager = (AudioManager) getSystemService("audio");

localAudioManager.setBluetoothScoOn(true);              

localAudioManager.startBluetoothSco();              

localAudioManager.setMode(2);
0 голосов
/ 20 августа 2011

Если я правильно понимаю ваш код, вы пытаетесь прочитать аудио из гнезда RFComm.Гнездо RFComm должно использоваться для отправки AT-команд на устройство (а не для чтения аудиоданных).

При отправке AT-команд убедитесь, что вы отправляете / отвечаете хотя бы на 3 обязательные AT-команды для устройств громкой связи AT+BRSF, AT+CIND=?, AT+CIND?, AT+CMER=x,x,x,x.См. Справочник по громкой связи , стр. 19.

. После этого вы должны открыть аудио соединение SCO для получения звука.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...