Wi-Fi Peer-to-Peer官方文档翻译

本文档翻译了Android Wi-Fi Peer-to-Peer的官方文档,介绍了如何在Android 4.0及以上系统中实现设备间的直接连接,无需中间热点。主要内容包括Wi-Fi P2P的API概述、广播接收器创建、应用创建流程、查找和连接对等设备以及数据传输。Wi-Fi P2P适合多人共享数据场景,如游戏和照片分享。
摘要由CSDN通过智能技术生成

最近要开始做wifi项目, 就顺便把google相关文档翻译了一下, 记录下学习历程.

Wi-Fi对等网络(Wi-Fi Peer-to-Peer)

Wifi对等网络允许具有Android4.0以上系统及配备了合适的硬件的设备通过wifi直接连接而不需要中间热点的支持.使用这些API,你可以查找和连接其他支持wifi-P2P设备,并能快速连接进行通讯,且通讯距离远远超过蓝牙.这对那些多人共享数据的设备及其有用,比例多人连机游戏,照片分享等.

Wifi-P2P APIs包含如下几个方面:

  • Methods: WifiP2pManager类中定义了各种方法允许你去查找,请求和连接对等设备.
  • Listeners: 当调用WifiP2pManger中的方法时,每个方法都接收一个特定的监听器作为参数,而监听器(Listeners)会通知你调用WifiP2pManager中的方法是否成功.
  • Intents: 通知用户由WIFI-P2P框架检测到的具体事件的意图(Intents),诸如连接断开,发现新的对等设备.

你会经常同时使用APIs中的这三个主要组件的相关功能,比如,你可以使用discoverPeers()中的监听器WifiP2pManager.ActionListener去执行回调,以便在ActionListener.onSuccess()ActionListener.onFailure()时得到通知.如果discoverPeers()方法发现对等设备列表发生变化,会发出WIFI-P2P-PEERS-CHANGED-ACTION意图的广播.

API总预览

WifiP2pManager类为用户和设备上的wifi硬件交互提供了各种方法,做诸如查找,连接对等设备.下面这些行为(actions)是可执行的:

表一 Wi-FiP2P方法

方法 释意
initalize() 注册wifi框架,这方法必须在其他wifi-p2p方法前调用
connect() 开始让具有特定配置的设备开始点对点的连接(peer to peer)
cancelConncet() 取消所有进行中的点对点的群体协商
requestConnectInfo() 请求设备的连接信息
createGroup() 使用当前设备作为组所有者创建一个点对点的组
removeGroup() 移除当前点对点的组群
requestGroupInfo() 请求点对点组群信息
discoverPeers() 初始化点的查找
requestPeers() 请求当前已查到到的点群表里

WifiP2pManager方法能让你传递一个监听器,以便Wi-Fi框架能够通知
你activity调用者的状态,这些可用的监听器接口和相应的WifiP2pManager方法调用监听器如下表描述:

表一 Wi-FiP2P监听器

监听接口 相关行为(actions)
WifiP2pManager.ActionListener connect(), cancelConnect(), createGroup(), removeGroup(), and discoverPeers()
WifiP2pManager.ChannelListener initialize()
WifiP2pManager.ConnectionInfoListener requestConnectInfo()
WifiP2pManager.GroupInfoListener requestGroupInfo()
WifiP2pManager.PeerListListener requestPeers()

Wi-Fi P2P APIs定义了某些Wi-FiP2P事件发生发送广播的意图(Intents),诸如当一个新的peer被发现或者一个设备的wifi状态改变时发送的广播意图.你可以在你的应用中注册广播接收器去接收这些广播意图,这些意图如下表:

表三: Wi-FiP2P意图:

意图 描述
WIFI_P2P_CONNECTION_CHANGED_ACTION 当设备wifi连接状态改变发送的广播
WIFI_P2P_PEERS_CHANGED_ACTION 调用discoverPeers()时发送的广播.如果在应用中处理这意图,你通常会调用requsetPeers()获取peers的更新列表
WIFI_P2P_STATE_CHANGED_ACTION 当WifiP2P可用或者不可用时发送的广播
WIFI_P2P_THIS_DEVICE_CHANGED_ACTION 当设备的详细信息改变,如设备的名称,发出的广播

为Wi-Fi P2P意图创建广播接收器

广播接收器可以接收来自android系统的发出的广播意图,以便你的应用程序能够为自己比较感兴趣的事件作出响应. 创建一个广播接受者处理wifi-p2p意图最基本的步骤如下:

  1. 创建一个类继承BroadcastReceiver类.对于该类的构造函数,最好传递wifip2pManager和WifiP2pManager.Channel两个参数,而且广播接受者会注册在需要的activity中. 如果有需要,这允许广播接受者发送更新信息,访问wifi硬件以及通讯频道.
  2. 在广播接受者中,在onReceive()方法可以检查你所有感兴趣的意图.实现任何必要的行为取决于所接受的意图.比如,如果广播接受者接受了WIFI_P2P_PEERS_CHANGED_ACTION意图,你便可以使用requsetPeers()方法获得当前已被查到的peers列表.

下面的代码会向你展示如何创建一个典型的广播接受者.这个广播接受者将一个WifiP2pManager对象和一个activity对象作为参数,并当广播接受者接收一个意图时使用这两个类去实现需要的行为(carry out needed
actions).

/**
 * A BroadcastReceiver that notifies of important Wi-Fi p2p events.
 */
public class WiFiDirectBroadcastReceiver extends BroadcastReceiver {
   

    private WifiP2pManager mManager;
    private Channel mChannel;
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值