Android Wifi Direct 安卓手机间wifi直连

本文介绍了如何在Android中利用Wi-Fi Direct实现设备间的直接连接。内容涵盖设置权限、创建广播接收器和对等网络管理器、初始化对等点搜索、获取对等点列表以及建立连接的详细步骤。Wi-Fi Direct提供了更远距离的通信,相比于蓝牙具有优势。
摘要由CSDN通过智能技术生成

         Wi-Fi Direct™的API允许应用程序不通过网络或热点,直接与周围的设备进行连接。应用程序可以迅速地查找附近的设备,交换信息。并且与蓝牙相比,Wi-Fi Direct的通讯范围更大。

        通过Wi-Fi Direct查找附近的设备,并与之连接一般包括如下几个步骤:

  • 设置应用程序权限
  • 创建一个广播接收器和对等网络管理器 
  • 初始化对等点的搜索
  • 获取对等点列表
  • 连接一个对等点


一、设置应用程序权限


        使用Wi-Fi Direct,需要向你的清单文件添加 CHANGE_WIFI_STATE,ACCESS_WIFI_STATEINTERNET 权限。Wi-Fi Direct不需要因特网连接,但需要使用标准Java套接字,而套接字需要INTERNET 权限,因此,你需要有以下的权限才可以使用Wi-Fi Direct。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.nsdchat"
    ...

    <uses-permission
        android:required="true"
        android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission
        android:required="true"
        android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission
        android:required="true"
        android:name="android.permission.INTERNET"/>
    ...

注:

android.permission.ACCESS_WIFI_STATE       允许程序访问Wi-Fi网络状态信息(Allows applications to access information about Wi-Fi networks)
android.permission.CHANGE_WIFI_STATE      允许程序改变Wi-Fi连接状态(Allows applications to change Wi-Fi connectivity state)
android.permission.INTERNET                           当需要访问网络的时候,需要在AndroidManifest.xml里面添加访问网络的权限


二、创建一个广播接收器和对等网络管理器

        使用Wi-Fi Direct,你需要监听广播意图(Intents)来获知某个特定事件的发生。在你的应用程序中,初始化一个 IntentFilter,并让它监听以下动作:

WIFI_P2P_STATE_CHANGED_ACTION

  • * 表明Wi-Fi对等网络(P2P)是否已经启用

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值