2013-06-26 3 views
0

두 개의 Android 기기를 연결할 때 PIN을 입력해야 서로 통신 할 수 있습니다.Android에서 PIN을 사용하여 Wi-Fi Direct를 설정하는 방법

Android SDK 17에 "WiFiDirectDemo"라는 샘플 프로젝트가 있습니다. Wi-Fi Direct 연결을 설정하지만 PIN 인증이 없습니다.

  1. 나는 현재 장치의 동작을 (I은 자동 생성 된 4 자리 PIN을 보여주고 싶은)를 지정 마십시오 라인 (71) 주변의 클래스 DeviceDetailFragment에 WiFiP2pConfig.wps.setup을 지정하는 방법을 모른다 , i. 이자형. config.wps.setup = WPSInfo.DISPLAY, 또는 피어에 조치를 지정해야합니까? 이자형. config.wps.setup = WPSInfo.KEYPAD?
  2. 다른 피어에서 연결 요청을 어떻게 검색합니까? 나는 내가들을 수있는 어떤 것이 있다고 생각한다. e. 지. BroadcastReceiver에서,하지만 그것을 찾을 수 없습니다.

저는 경험있는 iOS 개발자이지만 Android는 나에게 매우 새롭습니다. 아마도 그 대답은 당신에게 분명합니다. 당신의 도움을 주셔서 감사합니다.

답변

1

당신이 연결 요청을 전송 장치의 동작을 지정해야합니다 ... 그리고 핀을 위해 내가이

일을해야한다고 생각

p2pconfig.wps.setup = WpsInfo.DISPLAY; p2pconfig.wps.pin = "0000"; 연결시 로컬 장치에 PIN이 표시되고 사용자가 원격 장치에 동일한 PIN을 입력하도록 요청합니다. PIN을 입력하면 연결이 성공적으로 완료됩니다.

는 확인이 https://groups.google.com/forum/#!topic/android-platform/hN5WfXRzXpI은 5 게시물을 읽을

+1

답장을 보내 주셔서 감사합니다. 나는이 두 줄을 데모 응용 프로그램에 추가하려고 시도했지만 대화 상자를 표시하거나 표시하지 않고 계속 연결합니다. 귀하의 설명과 링크 된 포럼 항목에서 알 수 있듯이 할일이 없습니다. – Paul

+0

문제점을 발견했습니다. 필자는 장치를 한 번만 페어링하는 것으로 충분합니다 (제 경우에는 암시 적으로). 왼쪽에만 질문이 있습니다. 페어링을 제거하려면 어떻게해야합니까? 당신이 그것을 잘 안다면, 그렇지 않으면 나는 문서들을 파헤쳐 볼 것입니다. :) – Paul

+1

당신이 그룹을 제거하고 싶다면 wifip2pmanager에서 그룹이 통신을하는 채널을 인수로 취하는 remove group이라는 함수가 있다고 생각합니다. 따라서 올바른 채널을 제공하는 그룹 소유자 디바이스에서이 함수를 호출하면 그룹을 종료해야합니다 – user2458228

1

p2pconfig.wps.setup = WpsInfo.KEYPAD (p2pconfig.wps.pin를 지정하지 않은) me.It가에서 장치에 동적으로 생성 된 키를 표시하기위한 잘 작동 우리는 다른 장치에 입력하려고 연결하려고합니다.

이 경우 연결을 감지하기 위해 모든 b'cast 수신기를 청취 할 필요가 없습니다. wpa_supplicant가이를 처리하고 핀을 입력하라는 메시지를 표시합니다. 명확한 그림을 보려면 logcat 연결이 진행되는 동안 wpa_supplicant의 ADT (sdk + eclipse)에서 adb를 사용하여 logcat을 봅니다.