여기 거래가 있습니다. 블루투스를 사용할 수있는 두 개의 Galaxy Nexus 휴대 전화가 있습니다.Android 블루투스 IOException : 연결이 거부되었습니다
저는 장치 검색 및 연결에 사용하는 블루투스 연결 관리 앱을 작성했습니다. 또한 장치에서 지원할 수있는 사용 가능한 모든 UUID를 출력합니다.
http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm 다음 표준 UUID는 Galaxy Nexus 기기에서 공개됩니다.
- 0x1116 - NAP
- 0x112f - PBAP (전화 번호부 액세스 프로파일)
- 0x111f - HFP (핸즈프리)
- 0x1105 - OPP (개체 푸시 프로필)
- 0x1112 - HSP (헤드셋 프로필)
- 0x110c - AVRCP
- 0x110a - A2DP
OPP 프로필 (UUID 00001105-0000-1000-8000-00805F9B34FB
)을 통해 연결하고 장치간에 개체 (파일)를 푸시하려고합니다. 나는 모든 방법을 발견, 쌍/본드 (스레딩 등) 및 모든 블루투스 연결을 관리하는 방법에 대한 전체 Android API documentation 갔다. SPP (0x1101) 프로파일을 통해 기존 보드 장치에 성공적으로 연결하고 대화 할 수있었습니다.
두 갤럭시 넥서스 폰간에 socket.connect()
을 사용하려고하면 페어링 대화 상자가 나타나며 두 기기에서 Pair
버튼을 클릭합니다. 그 후에 나는 즉시 Connection Refused IOException
을 얻습니다. 페어링이 한 번 발생하면 보안 링크가 캐시 된 이후에 어떤 의미가 있는지 다시 묻지 않습니다.
표준 UUID를 사용하여 이러한 표준 프로파일에 연결할 수없는 경우 그 표준 UUID가 노출되는 이유는 무엇입니까? 내 앱에서 이러한 프로필 중 하나에 연결하여 상호 작용할 수 있습니까? 내 앱이 어떻게 든 신뢰할 수 없기 때문입니까? 이상한 점은 Android의 Share
기능도 전혀 작동하지 않는다는 것입니다. Android에서 완전히 손상된 것입니까?
문서와 같이 "잘 알려진 UUID SPP one 0x1101"을 사용하는 것에 대한 힌트를주지 마십시오. 이것은 내가 원하는 것이 아닙니다. 나는이 물건들이 어떻게 작동하는지에 대해 꽤 잘 이해하고 있으며, 문제에 대한 실질적인 해결책이나 설명을 찾고 있습니다.
일반적인 "리플렉션"솔루션을 보았지만 안드로이드에서 여전히이 문제가 왜 발생하는지 이해할 수 없습니까? 사람들이 왜이 작품을 만들기 위해 반성을 사용합니까? 이 문제를 해결하기 위해 Android에 버그를 제출할 수 있습니까?
해당 UUID가 표준 인 경우 모든 앱이 연결하고 상호 작용할 수 있어야합니다. 왜 이것이 문제이며이 예외가 발생합니까?
미리 감사드립니다.
UPDATE 그래서 어떤 이유로 안드로이드 시스템에서 개체 푸시는 작업을 시작했다. 실제로 내 앱을 통해 연결을 시도했지만 작동하지 않았습니다. 그런 다음 연락처 앱으로 이동하여 마술처럼 작동하는 연락처를 공유하려고했습니다. 그럼, 내 애플 리케이션에 가서 지금은 작동 ... 와우. 이것은 매우 이상하며, 이에 대한 설명이 있어야합니다.
올바른 사용 권한을 설정 했습니까? http://developer.android.com/guide/topics/connectivity/bluetooth.html#Permissions – Lars
@Lars 물론 그는 그렇게했습니다. dnkoutso : 소켓을 얼마나 열어 놓았습니까? 페어링을 다시 시도 할 수 있습니까? 페어 페어 페어링을 다시 시도하십시오. Btw, 2 층입니까? – nullpotent
@iccthedral, 2 단계로 무엇을 의미합니까? 종종 두 기기에서 실제 설정 앱으로 이동하여 페어링을 삭제합니다. 한번'socket.connect()'를 호출하면 페어링 대화 상자와 패스 키 번호를 입력하라는 메시지가 나옵니다. 불행하게도 "Connection Refused"IOException을 얻은 직후입니다. 업데이 트에 대한 – dnkoutso