转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/71106622
本文已授权微信公众号 fanfan程序媛 独家发布 扫一扫文章底部的二维码或在微信搜索 fanfan程序媛 即可关注
本文主要分析Andorid蓝牙共享网络的使用、连接流程等。
基于Android4.3源码
1 简介 |
Bluetooth PAN全称:Bluetooth Personal Area Networking,蓝牙个人区域网,是Bluetooth技术的一种重要应用,其核心思想就是用Bluetooth无线技术取代传统的有线电缆,组建个人化信息网络,实现个人范围的资源和信息共享(也就是网络共享)。
主要应用场景:手机与手机、PC与PC、PC与手机之间的网络共享。
三种角色:
NAP(Network Access Point): 如果你的蓝牙设备支持NAP,那么你可以通过共享网络连接来给别的PAN Network内的PC提供上网功能。
GN(Group Ad-hoc Network): 使你可以在小局域网内给其它设备提供数据转发的功能。
PANU(PAN User):与NAP,GN相对的角色,使用NAP,GN提供的功能的设备。
Android上支持作为NAP和PANU角色。
2 NAP |
NAP全称NetworkAccessPoint(网络接入点)。网络接入点又称为网络访问点,是带有一个或多个蓝牙射频的装置,作为LAN、GSM等网络和蓝牙网络之间的网桥、代理或路由器的设备。网络接入点为每个相连的蓝牙设备提供了网络服务,如LAN上共享的资源。
要想蓝牙共享网络,首先设备需要连接wifi或者开启流量。然后设置中开启“蓝牙共享网络”。
该界面对应着TetherSettings。
路径:packages/apps/Settings/src/com/android/settings/TetherSettings.java
在其onCreate时,会获取BluetoothPan代理对象。
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (adapter != null) {
//获取pan代理对象
adapter.getProfileProxy(activity