当前位置: 首页 > news >正文

android wifi AsyncChannel(WifiManager和WifiP2pManager)

AynscChannel的讲解

[Android]AsyncChannel介绍-CSDN博客

WifiP2pManager里的channel的使用理解

WifiP2pManager.java

 

public void createGroup(Channel c, ActionListener listener) {checkChannel(c);c.mAsyncChannel.sendMessage(CREATE_GROUP, WifiP2pGroup.NETWORK_ID_PERSISTENT,c.putListener(listener));
}
这里面的c变量是Channel, c.putListener按理说Channel里有putListener方法

一开始以为Channel是android 里的工具类接口,结果发现WifiP2pManager里有这个Channel的定义

里面还有个P2pHandle,解析各种信息,调用不同的回调,可以看出来这儿不止有ActionListener回调,还有P2pStateListener、ConnectionInfoListener等


class WifiP2pManager {
public static class Channel implements AutoCloseable {public Channel(Context context, Looper looper, ChannelListener l, Binder binder,WifiP2pManager p2pManager) {mAsyncChannel = new AsyncChannel();mHandler = new P2pHandler(looper);}class P2pHandler extends Handler {public void handleMessage(Message message) {case DISCOVER_PEERS_FAILED:case STOP_DISCOVERY_FAILED:case DISCOVER_SERVICES_FAILED:case CONNECT_FAILED:case CANCEL_CONNECT_FAILED:case CREATE_GROUP_FAILED:case REMOVE_GROUP_FAILED:((ActionListener) listener).onFailure(message.arg1);break;case CREATE_GROUP_SUCCEEDED:case REMOVE_GROUP_SUCCEEDED:((ActionListener) listener).onSuccess();case RESPONSE_P2P_STATE:((P2pStateListener) listener).onP2pStateAvailable(message.arg1);case RESPONSE_CONNECTION_INFO:((ConnectionInfoListener)listener).onConnectionInfoAvailable(wifiP2pInfo);}}private int putListener(Object listener) {int key;key = mListenerKey++;mListenerMap.put(key, listener);}return key;}
}
}

http://www.lryc.cn/news/525531.html

相关文章:

  • 【Image Captioning】DynRefer
  • Midjourney基础-常用修饰词+权重的用法大全
  • 没有屋檐的房子-023粪堆旁边的舞蹈
  • 基于Docker的Kafka分布式集群
  • 【博客之星】年度总结:在云影与墨香中探寻成长的足迹
  • SpringBoot的Swagger配置
  • machine learning knn算法之使用KNN对鸢尾花数据集进行分类
  • C语言练习(16)
  • SOAFEE 技术研讨会:汽车软件定义与自动驾驶技术探讨
  • R语言学习笔记之开发环境配置
  • 多版本并发控制:MVCC的作用和基本原理
  • ubuntu18.04安装nvm管理本机node和npm
  • 【数据结构进阶】红黑树超详解 + 实现(附源码)
  • leetcode_3092. 最高频率的 ID
  • 鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)
  • 数据统计–图形报表(day11)
  • 源码分析之Openlayers样式篇CircleStyle类
  • 解决CentOS9系统下Zabbix 7.2图形中文字符乱码问题
  • AF3 FourierEmbedding类源码解读
  • vsftpd虚拟用户部署
  • MySQL 容器已经停止(但仍然存在),但希望重新启动它,并使它的 3306 端口映射到宿主机的 3306 端口是不可行的
  • 汇编实验·顺序程序设计
  • AIGC视频扩散模型新星:Video 版本的SD模型
  • HarmonyOS:通过(SQLite)关系型数据库实现数据持久化
  • 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析
  • STM32更新程序OTA
  • MarsCode青训营打卡Day10(2025年1月23日)|稀土掘金-147.寻找独一无二的糖葫芦串、119.游戏队友搜索
  • vue(33) : 安装组件出错解决
  • ChatGPT结合Excel辅助学术数据分析详细步骤分享!
  • stm32f103 单片机(一)第一个工程