> 文章列表 > Android Wifi开发——直连源码解析(十四)

Android Wifi开发——直连源码解析(十四)

Android Wifi开发——直连源码解析(十四)

        上一篇文章主要介绍了 WLAN 直连的 API 及应用开发流程,这一篇主要来看一看源码的实现。

一、初始化

源码位置:/packages/modules/Wifi/framework/java/android/net/wifi/p2p/WifiP2pManager.java

        通过 WLAN 框架注册应用。必须先调用此方法,然后再调用任何其他 WLAN P2P 方法。

public Channel initialize(Context srcContext, Looper srcLooper, ChannelListener listener) {Binder binder = new Binder();Channel channel = initializeChannel(srcContext, srcLooper, listener, getMessenger(binder, srcContext.getOpPackageName()), binder);return channel;
}
private Channel initializeChannel(Context srcContext, Looper srcLooper, ChannelListener listener, Messenger messenger, Binder binder) {if (messenger == null) return null;Channel c = new Channel(srcContext, srcLooper, listener, binder, this);if (c.mAsyncChannel.connectSync(srcContext, c.mHandler, messenger) == AsyncChannel.STATUS_SU