英特尔 Android* 开发者指南上的对等应用
简单介绍
当没有 Wi-Fi 訪问点或互联网訪问时,Android* 应用可能须要对等连接在两台或多台 Android* 设备之间建立连接。 比方,文件共享应用和多人游戏。
该功能可使用 NFC、蓝牙或 Wi-Fi 对等技术来实施。 特定案例中的首选技术须要依据所需的距离、连接速度、功耗和独特的技术特性来决定。
本文将对 Wi-Fi 对等技术进行评估。 Wi-Fi 对等(P2P)支持具备适当应用的 Android 4.0 或更高版本号在没有接入点的情况下通过 Wi-Fi 彼此连接。
Android Wi-Fi P2P 框架符合 Wi-Fi Direct 标准。
普通情况下,Wi-Fi Direct 支持更快的速度和更远的距离,可是所需的功耗比蓝牙连接高。
实施
本文将重点介绍在两台 Android 设备之间建立套接字连接的基本步骤。
如要使用 Wi-Fi P2P,应用必须将最低软件开发套件版本号正确设置为 14,并在 AndroidManifest.xml 文件里申请例如以下许可:
- ACCESS_WIFI_STATE
- CHANGE_WIFI_STATE
- ACCESS_NETWORK_STATE
- CHANGE_NETWORK_STATE
- INTERNET
应用须要调用 WifiP2pManager 对象的 initialize() 方法,以使用
Wi-Fi P2P 框架注冊应用。 这样的方法必须在运行 Wi-Fi P2P 操作前调用。
应用须要为下面 Wi-Fi P2P intent 创建和注冊广播接收器:
- WIFI_P2P_CONNECTION_CHANGED_ACTION
- WIFI_P2P_PEERS_CHANGED_ACTION
- WIFI_P2P_STATE_CHANGED_ACTION
- WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
运行以上步骤后,应用将可以在 WifiP2pManager 对象中调用 Wi-Fi P2P 方法,并接收 Wi-Fi P2P intent。
大部分的 WifiP2pManager 方法是异步的,因此开发者须要向每种方法调用提供 listener 来获取状态和结果。
如要发现可用的 Wi-Fi P2P 设备。须要调用 WifiP2pManager 对象的 discoverPeers() 方法。
发现流程将会一直运行,知道设备打开 Wi-Fi P2P 连接或调用 stopPeerDiscovery 方法。
当应用接收 WIFI_P2P_PEERS_CHANGED_ACTION intent 时。使用 WifiP2pManager 对象的 requestPeers()方法将可以获得发现的对等设备列表。
如要连接获取的对等设备列表中的某台设备,须要准备包括完整 deviceAddress 字段的 WifiP2pConfig对象,并调用
WifiP2pManager 对象的 connect() 方法。
成功连接后。通过调用 WifiP2pManager 对象的 requestConnectInfo() 方法获取设备
IP 地址。
然后。使用 IP 地址创建一个 Socket 和 ServerSocket 对象。 使用标准的套接字接口运行通信。
下面是调用方法并接收 intent 以准备为 Wi-Fi P2P 设备建立连接的图表:

如要在两台 Android 设备之间建立 Wi-Fi P2P 连接。至少须要运行这些步骤。 应用应为全部 Wi-Fi P2P intent 和 listener 实施处理程序,以充分响应不同的事件,如连接丢失或 Wi-Fi 禁用。 请參阅 Android 文档。了解很多其它信息。
英特尔 Android* 开发者指南上的对等应用的更多相关文章
- Android开发者指南-方位传感器-Position Sensor
Android开发者指南-方位传感器-Position Sensor 转载自:http://blog.sina.com.cn/s/blog_48d4913001010zsu.html Position ...
- Android开发者指南(9) —— ProGuard
转: 前言 本章内容为开发者指南(Dev Guide)/Developing/Tools/ProGuard,本章内容为"混淆器",版本为Android3.0 r1,翻译来自:&qu ...
- Android开发者指南-用户界面-拖放-Drag and Drop[原创译文]
英文原文:http://developer.android.com/guide/topics/ui/drag-drop.html 版本:Android 4.0 r1 译者注:黄色底色为未决译文 快 ...
- 转 Android开发者指南-Manifest.xml-<supports-screens
<supports-screens> 版本:Android 3.2 语法: <supports-screensandroid:resizeable=["true" ...
- 面向英特尔® x86 平台的 Unity* 优化指南: 第 1 部分
原文地址 目录 工具 Unity 分析器 GPA 系统分析器 GPA 帧分析器 如要充分发挥 x86 平台的作用,您可以在项目中进行多种性能优化,以最大限度地提升性能. 在本指南中,我们将展示 Uni ...
- Android开发者必知的开发资源
推荐书籍 我推荐下面两本书: The Busy Coder’s Guide to Android Development <The Busy Coder’s Guide to Android D ...
- (转载)Android开发者必知的开发资源
(转载)http://www.importnew.com/3988.html 随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮.如果您是一位2013 ...
- [转][赞]Android开发者必知的开发资源
英文原文:Bongzimo 翻译: ImportNew-黄小非 随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮.如果您是一位2013年刚刚入行的 ...
- Android 开发者必知的开发资源
英文原文:Bongzimo 翻译: ImportNew-黄小非 译文链接:http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Androi ...
随机推荐
- 高效的 itertools 模块(转)
原文地址:http://python.jobbole.com/87380/ 我们知道,迭代器的特点是:惰性求值(Lazy evaluation),即只有当迭代至某个值时,它才会被计算,这个特点使得迭代 ...
- 获取asp.net mvc应用程序的根目录
如果使用Server.MapPath(“controllerName”)这样取得的是带控制权名称的目录, 所以要取得上一级目标,如:Server.MapPath("../"),这才 ...
- CentOS 6.9使用iptables搭建网关服务器(转)
条件: 网关服务器IP:172.16.0.1,并且可以连接到外网 客户端IP:172.16.0.0/24 1.开启转发支持forward /etc/sysctl.conf net.ipv4.ip_fo ...
- WPF Interaction框架简介(一)——Behavior
在WPF 4.0中,引入了一个比较实用的库——Interactions,这个库主要是通过附加属性来对UI控件注入一些新的功能,除了内置了一系列比较好用的功能外,还提供了比较良好的扩展接口.本文这里简单 ...
- 简单实现ToolStripMenuItem(菜单栏)的单选效果
来源:http://www.97world.com/archives/2194 这几天在写又拍云的客户端,老实说确实学到了不少东西!接下来的几天我会把一些技巧或者原来没有接触过的一些东西发上来,算是复 ...
- gridcontrol表头设置
点击Run Disigner进入设计界面,设置颜色字体等信息在Appearance分支下面,设置行为功能,显示区域等在Options分支下面.
- Android studio 和 Eclipse快捷键对比
操作 studio eclipse debug/run 计算变量值 alt+F8 ctrl+shift+I 跳到下一步 F8 F6 跳到下一个断点 shift+F8 F8 进入到代码 F7 F5 ...
- vue项目中使用地图组件
一.引入高德地图 一般用使用vue-cli webpack最简单粗暴的引入地图api的方法就是,在入口index.html的头部直接引入,记得一定要带上key,如果没有的话去高德地图api的官网申请一 ...
- SQL 备份还原单个表
如果只想备份或恢复单个表而不想备份或恢复整个数据库的话,往往有以下方法: 1.在Sql server2000 中可以使用DTS来将该表的数据导出成另外的文件格式.当需要恢复时,可以将该文件中数据再通过 ...
- myEclipse的配置