wifi.p2p

本文介绍如何利用Android平台提供的API通过Wi-Fi Direct建立P2P连接。主要涉及初始化连接、搜索附近设备及建立连接的过程。此外还介绍了几个重要的接口,包括接收操作回调、获取搜索到的设备信息及P2P组信息。

提供了一些类来通过Wi-Fi Direct创建P2P连接。

 

当你使用这些API的时候, 你会搜索到其它设备的并且可以与它通信,如果该设备支持Wi-Fi Direct的话.  这种通信方式比蓝牙有更远的传输距离和更快的传输速度. 你所需要的最主要的类是 WifiP2pManager, 你可以通过getSystemService(WIFI P2P SERVICE)来获取它的实例. WifiP2pManager包含的API可以帮助你实现以下:

  · 通过调用initialize()来为你的P2P连接初始化

  · 搜索附近的设备通过调用 discoverPeers()

  · 开始P2P连接, 通过调用 connect()

 

几个接口和类也是必须的,例如:

 

  · WifiP2pManager.ActionListener 可以允许你接收回调, 例如搜索和连接成功或者失败时候的回调。

  · WifiP2pManager.PeerListListener 接口允许你获取关于你搜索到的peers的信息。回调提供了一个WifiP2pDeviceList, 通过它你可以获取每一个范围内的WifiP2pDevice对象,并且获取类似设备名字,地址,设备类型, 设备对WPS的支持等信息。

  · WifiP2pManager.GroupInfoListener 接口允许你接收关羽P2P组的信息。回调提供了一个 WifiP2pGroup 实例, 你可以获取P2p组信息,例如组长,网络名字,密码等。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

帮我看一下这个报错:06-12 03:36:49.417 5514 5514 E AndroidRuntime: Process: wifip2p.wifi.com.wifip2p, PID: 5514 06-12 03:36:49.417 5514 5514 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{wifip2p.wifi.com.wifip2p/wifip2p.wifi.com.wifip2p.activity.SendFileActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.wifi.p2p.WifiP2pManager$Channel android.net.wifi.p2p.WifiP2pManager.initialize(android.content.Context, android.os.Looper, android.net.wifi.p2p.WifiP2pManager$ChannelListener)' on a null object reference 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3469) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3663) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.os.Looper.loop(Looper.java:272) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7971) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:986) 06-12 03:36:49.417 5514 5514 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.wifi.p2p.WifiP2pManager$Channel android.net.wifi.p2p.WifiP2pManager.initialize(android.content.Context, android.os.Looper, android.net.wifi.p2p.WifiP2pManager$ChannelListener)' on a null object reference
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值