如何在Android 6上创建一个便携式热点并连接其他设备并共享一个像share it ..这样的文件?

时间:2017-04-25 11:26:36

标签: android

我使用此代码创建热点,但我不知道如何自动将其他设备连接到此热点..?

public static boolean setHotSpot(String SSID, String passWord) {
    Method[] mMethods = wifiManager.getClass().getDeclaredMethods();

    for (Method mMethod : mMethods) {

        if (mMethod.getName().equals("setWifiApEnabled")) {
            WifiConfiguration wifiConfig = new WifiConfiguration();
            if (passWord == "") {
                wifiConfig.SSID = SSID;
                wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
                wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            } else {
                wifiConfig.SSID = SSID;
                wifiConfig.preSharedKey = passWord;
                wifiConfig.hiddenSSID = true;
                wifiConfig.status = WifiConfiguration.Status.ENABLED;
                wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
            }
            try {
                mMethod.invoke(wifiManager, netConfig, true);
                wifiManager.saveConfiguration();
                return true;

            } catch (Exception e) {

            }
        }
        return false;
    }

}

1 个答案:

答案 0 :(得分:1)

我找到了一个名为SHAREthem的库,它模拟了SHAREit的工作原理。库使用WiFi热点促进P2P文件共享和设备之间的传输。如果接收器没有安装应用程序,它还支持应用程序到Web共享。希望有助于您了解使用WiFi Hotspot进行文件共享所涉及的技术。

实施细节:

HotspotController

HC使用Java Reflection,因为Android上没有可用于启用/禁用热点的API。功能包括: 控制器创建一个带有SSID的OPEN Wifi热点配置,该SSID可以被接收方截获,以识别SHAREthem发送者,包括端口和发送者名称。 禁用共享模式时恢复用户热点配置 提供已连接的WiFi客户端列表。 分享服务器

从NanoHttpd扩展的微型HTTP服务器,使用IP地址作为主机名将发送方数据提供给接收方,并默认使用由用户或系统分配的端口。 分享服务

Android服务,管理SHAREthem服务器的生命周期,并通过停止操作处理前台通知。 UI(活动)

处理共享/接收操作的Android活动

Receiver - 提供用户界面列出可供下载的文件。向Android Download Manager发布下载请求以启动文件下载。 发件人 - 显示IP,端口和放大器连接客户端信息以及每个连接的客户端(接收器)的文件传输状态。