基于热点的短距离传输

                                                                                无网络环境下的Android端数据传输

      对于无网络的数据传输方式:

  1. NFC :适用于体量小指令数据传输,大数据量传输,速度较慢且不稳定,但是建立连接过程很快。
  2. WIFI直连:传输速度快,可传输数据量大,但是连接过程复杂。
  3. 蓝牙:常规的蓝牙区别于低功耗蓝牙(没有涉及),常规蓝牙需要发现设备,配对设备
  4. 热点TCP/IP方式

      方式很多,就先记录下尝试过的一种吧:第四种方式

  • 服务端创建网络

      创建热点,这里采用的是反射机制调用系统的API方法,创建约定的名称的热点,创建成功之后会自动打开wifi热点

public boolean setWifiApEnabled() {
  // disable WiFi in any case
        //wifi和热点不能同时打开,所以打开热点的时候需要关闭wifi
    mWifiManager.setWifiEnabled(false);
    try {
        //热点的配置类
        WifiConfiguration apConfig = new WifiConfiguration();
        //配置热点的名称(可以在名字后面加点随机数什么的)
        apConfig.SSID = GlobData.WIFIAPSSID;
        //配置热点的密码
        apConfig.preSharedKey = GlobData.WIFIAPPASSWORD;
        /***配置热点的其他信息  加密方式**/
        apConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
        apConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        //用WPA密码方式保护
        apConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
        apConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        apConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
        apConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
        apConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        apConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        //通过反射调用设置热点
        Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
        //返回热点打开状态
        return (Boolean) method.invoke(mWifiManager, apConfig, true);
    } catch (Exception e) {
        return false;
    }
}
  • 客户端连接网络
  1. 扫描附近的网络,添加广播接收网络变化及扫描结果
  2. 添加网络,当扫描结果包含已约定SSID的热点,则添加到WiFi列表
  3. 连接该网络网络,
/**
 * 是否已连接指定wifi
 */
public boolean isConnected(String ssid) {
    WifiI
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值