吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2135|回复: 1
收起左侧

[会员申请] 申请会员ID:用一句话描述

[复制链接]
吾爱游客  发表于 2018-2-5 17:01
  1. 申 请 I D:用一句话描述

  2. 个人邮箱:764010928@qq.com

  3. 原创技术文章:

说明

我是一名Android开发,因为工作上需要远程调试不同的Android盒子,盒子的IP地址又经常变更,所以开发了一款可以扫码局域网内可以远程调试的设备,能够进行连接断开的软件,连接之后就可以通过命令行使用各种Android ADB命令了。

实现原理

  1. 通过循环ping 局域网的IP得到所有在线的设备ip,方法具体实现如下:

    public static void startSeach(final OnSeachListener listener, final String port) {
    
        count = 0;
    
        listeners = listener;
    
        for (int i = 1; i <= 255; i++) {
    
            final int finalI = i;
    
            executorService.execute(new Runnable() {
    
                @Override
    
                public void run() {
    
                    String ret = execCMD("ping 192.168." + port + "." + finalI + " -w 100 -n 1");
    
                    if (ret.indexOf("来自") >= 0 && isHostConnectable("192.168.80." + finalI, 5555)) {
    
                        Platform.runLater(new Runnable() {
    
                            @Override
    
                            public void run() {
    
                                listener.onSeach("192.168.80." + finalI);
    
                            }
    
                        });
    
                    }
    
                    countUp();
    
                }
    
            });
    
        }
    
        executorService.execute(new Runnable() {
    
            @Override
    
            public void run() {
    
                while (true) {
    
                    if (count >= 255) {
    
                        Platform.runLater(new Runnable() {
    
                            @Override
    
                            public void run() {
    
                                listener.onEnd();
    
                            }
    
                        });
    
                        break;
    
                    }
    
                    try {
    
                        Thread.sleep(500);
    
                    } catch (Exception e) {
    
                        e.printStackTrace();
    
                    }
    
                }
    
            }
    
        });
    }
  2. 通过循环判断每个在线设备的IP的端口5555 是否开放来判断是否可以ADB远程调试,判断方法如下:

    public static boolean isHostConnectable(String host, int port) {
    
        Socket socket = new Socket();
    
        try {
    
            socket.setSoTimeout(100);
    
            socket.connect(new InetSocketAddress(host, port));
    
        } catch (Exception e) {
    
            return false;
    
        } finally {
    
            try {
    
                socket.close();
    
            } catch (IOException e) {
    
                e.printStackTrace();
    
            }
    
        }
    
        return true;
    
    }
  3. 如设备的5555端口是打开状态,那么就可以执行ADB连接,或者断开。

差不多就这样,不知道为何程序截图一直上传不上来,程序 源码和截图上传到百度云了:
https://pan.baidu.com/s/1pMbdFwZ


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2018-2-6 14:53
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

ps:过程太简单了,不足以达到申请要求,可以跟帖更多技术内容申请。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表