프로그래밍에 친숙한 네트워크 전문가는 프로토콜 문서를 보는 것보다 그 프로토콜이 구현된 API를 들여다 보는 것을 통해 보다 빠르고 정확하게 프로토콜에 대해 이해하기도 한다. - Softgear Ko
본 문서는 http://developer.android.com/sdk/android-4.0.html 의 WiFi Direct 를 번역하였습니다.
Wi-Fi Direct
안 드로이드는 이제 사용자간 연결(P2P)을 위한 Wi-Fi Direct 를 지원한다. 이 P2P 연결은, 핫스팟이나 인터넷 연결 없이, 안드로이드 장치 또는 다른 디바이스 간의 직접 연결 및 통신을 말한다. 안드로이드 프레임워크는 Wi-Fi P2P API를 제공하여, 당신이 Wi-Fi Direct를 지원하는 다른 디바이스를 찾고 연결할 수 있도록 하고, Bluetooth 연결보다 더 긴 거리에서 더 빠른 통신을 가능하게 한다.
새로운 패키지 android.net.wifi.p2p
(http://developer.android.com/reference/android/net/wifi/p2p/package-summary.html)
는 Wi-Fi를 통한 P2P 연결을 수행하는데 필요한 모든 API를 포함한다. 당신이 사용하게 될 주 클래스는 WifiP2pManager 이다. 이는 당신이 getSystemService(WIFI_P2P_SERVICE) 를 호출하여 사용할 수 있다. WifiP2pManager 는 다음 기능을 가진 API들을 포함한다.
* initialize() 를 호출하여 P2P 연결을 위한 당신의 어플리케이션을 초기화
* discoverPeers() 를 호출하여 이웃 디바이스를 찾아내기(discover)
* connect()를 호출하여 P2P 연결을 시작
* 기타 기능
몇몇 다른 필수적인 인터페이스 및 클래스는 다음과 같다.
* WifiP2pManager.ActionListener 인터페이스는 당신이 상대방을 찾거나(discover) 연결하는 동작이 성공하거나 실패한 경우 호출되는 콜백(callback)을 받을 수 있게 한다.
* WifiP2pManager.PeerListListener 인터페이스는 당신이 발견된 상대방에 관한 정보를 받을 수 있게 한다. 이 콜백은 WifiP2pDeviceList 를 제공하는데, 여기서 통신 범위내에 있는 각 디바이스 별 WifiP2pDevice 객체를 뽑아내어, 디바이스 이름, 주소, 디바이스 타입, WPS 설정 등과 같은 정보를 얻을 수 있다.
* WifiP2pManager.GroupInfoListener 인터페이스는 당신이 P2P 그룹에 관한 정보를 받을 수 있게 한다. 이 콜백은 WifiP2pGroup 객체를 제공하는데, 이는 소유자(owner), 네트워크 이름, 암호구문(passphrase) 등과 같은 그룹 정보를 제공한다.
* WifiP2pManager.ConnectionInfoListener 인터페이스는 당신이 현재 연결에 관한 정보를 받도록 한다. 이 콜백은 WifiP2pInfo 객체를 제공하는데, 이는 그룹이 구성되었는지 여부, 누가 그룹 소유자인지를 포함한다.
Wi-Fi P2P API들을 사용하기 위해서는, 당신의 어플은 다음 사용자 권한들을 요청해야 한다.
* ACCESS_WIFI_STATE
* CHANGE_WIFI_STATE
* INTERNET (비록 당신의 어플이 기술적으로 인터넷에 연결하지 않을지라도, Wi-Fi Direct 통신을 위한 표준 java socket들은 Internet permission을 요구한다)
안드로이드 시스템은 다음과 같은 Wi-Fi P2P 이벤트에 대해 몇가지 action을 broadcast한다.
* WIFI_P2P_CONNECTION_CHANGED_ACTION: P2P연결 상태가 변경 되었음을 나타낸다.. 이는 WifiP2pInfo 객체를 가진 EXTRA_WIFI_P2P_INFO 와 NetworkInfo 객체를 가진 EXTRA_NETWORK_INFO 를 전달한다.
* WIFI_P2P_STATE_CHANGED_ACTION: P2P 상태가 enabled와 disabled 사이에서 변경 되었음을 나타낸다. 이는 WIFI_P2P_STATE_DISABLED 또는 WIFI_P2P_STATE_ENABLED 를 가진 EXTRA_WIFI_STATE 를 전달한다.
* WIFI_P2P_PEERS_CHANGED_ACTION: 상대방 디바이스 리스트가 변경되었음을 나타낸다.
* WIFI_P2P_THIS_DEVICE_CHANGED_ACTION: 이 디바이스에 대한 세부사항(details)가 변경되었음을 나타낸다.
더 자세한 정보를 위해서는 WifiP2pManager 문서
( http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html )
를 참고하라. 그리고 또한, Wi-Fi Direct 데모 샘플 어플리케이션
( http://developer.android.com/resources/samples/WiFiDirectDemo/index.html )
을 보라.
- 문서끝.
출 처: 쏘프트 스토리에서 퍼옴.
http://blog.naver.com/PostView.nhn?blogId=softgear&logNo=100150666274
'안드로이드' 카테고리의 다른 글
WebViewClient (0) | 2012.07.12 |
---|---|
Android WireShark TCP dump (0) | 2012.07.12 |
Android 빌드하기 (0) | 2012.03.03 |
Framework에서 Attrs.xml에 추가하기 (0) | 2012.02.03 |
Device Administration (0) | 2012.01.28 |