美文网首页
连接到手机热点的设备信息

连接到手机热点的设备信息

作者: Xx_young | 来源:发表于2017-04-12 15:18 被阅读0次

    ClientScanResult.java

    public class ClientScanResult {
    private String IpAddr;
    
    private String HWAddr;
    
    private String Device;
    
    private boolean isReachable;
    
    public ClientScanResult(String ipAddr, String hWAddr, String device, boolean isReachable) {
        super();
        IpAddr = ipAddr;
        HWAddr = hWAddr;
        Device = device;
        this.setReachable(isReachable);
    }
    
    public String getIpAddr() {
        return IpAddr;
    }
    
    public void setIpAddr(String ipAddr) {
        IpAddr = ipAddr;
    }
    
    public String getHWAddr() {
        return HWAddr;
    }
    
    public void setHWAddr(String hWAddr) {
        HWAddr = hWAddr;
    }
    
    public String getDevice() {
        return Device;
    }
    
    public void setDevice(String device) {
        Device = device;
    }
    
    public void setReachable(boolean isReachable) {
        this.isReachable = isReachable;
    }
    
    public boolean isReachable() {
        return isReachable;
    }
    
    @Override
    public String toString() {
        return "ClientScanResult{" +
                "IpAddr='" + IpAddr + '\'' +
                ", HWAddr='" + HWAddr + '\'' +
                ", Device='" + Device + '\'' +
                ", isReachable=" + isReachable +
                '}';
    }
    }
    

    WifiApManager.java

     public class WifiApManager {
     private final WifiManager mWifiManager;
    
    public WifiApManager(Context context) {
        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    }
    
    
    /**
     * Gets a list of the clients connected to the Hotspot, reachable timeout is 300
     *
     * @param onlyReachables {@code false} if the list should contain unreachable (probably disconnected) clients, {@code true} otherwise
     * @return ArrayList of {@link ClientScanResult}
     */
    public ArrayList<ClientScanResult> getClientList(boolean onlyReachables) {
        return getClientList(onlyReachables, 300);
    }
    
    /**
     * Gets a list of the clients connected to the Hotspot
     *
     * @param onlyReachables   {@code false} if the list should contain unreachable (probably disconnected) clients, {@code true} otherwise
     * @param reachableTimeout Reachable Timout in miliseconds
     * @return ArrayList of {@link ClientScanResult}
     */
    public ArrayList<ClientScanResult> getClientList(boolean onlyReachables, int reachableTimeout) {
        BufferedReader br = null;
        ArrayList<ClientScanResult> result = null;
    
        try {
            result = new ArrayList<ClientScanResult>();
            br = new BufferedReader(new FileReader("/proc/net/arp"));
            String line;
            while ((line = br.readLine()) != null) {
                String[] splitted = line.split(" +");
    
                if ((splitted != null) && (splitted.length >= 4)) {
                    // Basic sanity check
                    String mac = splitted[3];
    
                    if (mac.matches("..:..:..:..:..:..")) {
                        boolean isReachable = InetAddress.getByName(splitted[0]).isReachable(reachableTimeout);
                        Log.e("WifiApManager", "getClientList: " + isReachable);
                        if (!onlyReachables || isReachable) {
                            result.add(new ClientScanResult(splitted[0], splitted[3], splitted[5], isReachable));
                        }
                    }
                }
            }
        } catch (Exception e) {
            Log.e(this.getClass().toString(), e.getMessage());
        } finally {
            try {
                br.close();
            } catch (IOException e) {
                Log.e(this.getClass().toString(), e.getMessage());
            }
        }
    
        return result;
    }
    }
    

    相关文章

      网友评论

          本文标题:连接到手机热点的设备信息

          本文链接:https://www.haomeiwen.com/subject/mremattx.html