3
지금은 새로운 Android 애플리케이션을 개발하고 있습니다. 나는 그 애플 리케이션을 위해 블루투스가 필요합니다. serversocket/socket 시스템을 통해 두 개의 (쌍으로 연결된) 장치를 연결하려고 할 때마다 작동중인 소켓을 만들 수 없습니다. 항상 반환 :Android에서 블루투스 연결을 위해 어떤 UUID를 선택해야합니까?
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
내 질문은 : 잘못된 UUID를 사용하고 있습니까? 그게 아니라면. 무엇이 잘못 되었을지 다른 제안 사항이 있습니까?
public Accept(BluetoothAdapter bt, BluetoothDevice device, Context context) {
try {
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
BluetoothServerSocket tmp = null;
try {
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00294F9B3423");
//Here is the point when it doesn't work...
tmp = bt.listenUsingRfcommWithServiceRecord(context.getResources().getString(R.string.bt_string_for_profile_image), uuid);
} catch (Exception e) {
}
mmServerSocket = tmp;
bt_device = device;
} catch (Exception e) {
}
}
미리 도움을 주셔서 감사합니다.
우선 : 귀하의 회신에 감사드립니다. 그러나 이것이 내 문제를 해결하지 못했다고해서 유감입니다. 아마 충분한 코드를주지 않았을거야. 내 코드는 기본적으로 다음과 같이 보입니다. [link] (https://developer.android.com/guide/topics/connectivity/bluetooth.html#ConnectingAsAServer) 그래서 저는 그것을 Thread로 처리합니다. 그리고 그 스레드의 run() 메소드에서 accept() - Methode를 호출합니다. – Swittmann
하지만이 메소드를 호출하자마자 bt.listenUsingRfcommWithServiceRecord (context.getResources(). getString (R.string.bt_string_for_profile_image), uuid); thr serversocket의 채널은 -1입니다. 그래서이 메소드에 문제가 있다고 생각합니까? – Swittmann
오오 .. 완전한 코드를 알지 못해 죄송합니다 ... 여기서 가장 먼저 할 수있는 일은 수신 기능에서 반환 된 오류 코드/예외를 확인하는 것입니다. 이렇게하면 오류의 원인을 이해하는 데 도움이됩니다. 내가 제공 한 링크를 읽으면서이 경우에는 "Bluetooth를 사용할 수 없거나 사용 권한이 충분하지 않거나 사용중인 채널과 같이 오류가 발생할 경우에만 예외를 수신 할 수 있습니다." – aksonlyaks