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