1. 流程细节
- 判断是否连上了usb
- 如果是,此为
[usb连接模式]
- 获取ip地址
- 保存ip地址
- 设置默认端口
- 开始投屏
- 判断是否投屏过程中设备拔掉usb
- 如果是
- 跳转到
[无线连接模式]
- 如果否
- 保持连接
- 如果否,此为
[无线连接模式]
- 检查是否有默认ip地址
- 如果没有,此为
[配置新ip和端口]
- 要求输入IP地址和端口
- 判断是否能连接上
- 如果能连上
- 保存ip地址
- 设置监听端口
- 断开连接
- 跳转到
[无线连接模式]
- 如果连不上 mark
- 输出提示: 将使用usb模式 ,如果仍想尝试用无线连接,请重开程序
- 判断usb插入,此为
[usb等待循环]
- 如果没有插入
- 跳转到
[usb等待循环]
- 如果插入
- 跳转到
[usb模式]
- 如果有
- 使用默认配置连接
- 判断是否能连接上
- 如果是
- 开始投屏
- 如果否
- 跳转到
[配置新ip和端口]
2. 流程大纲
- 提供两种方法连接,默认是先usb连接再无线连接
- 无线连接
- 提供三种无线连接方式
- 用默认配置连接
- 使用新配置来重设默认配置,再用默认配置连接
- 使用usb来重设默认配置,再用默认配置连接
- usb连接
- 悄悄重设默认配置
- 使用usb直连
- 连接成功后,直接开始投屏
3. 源码
@echo off
adb kill-server
adb tcpip 5555 2>&1 | findstr "restarting" >nul
if errorlevel 1 (
call :WIFImode
) else (
call :USBmode
)
exit /b %errorlevel%
:USBmode
setlocal enabledelayedexpansion
choice /n /t 2 /d y >nul
echo USBmode launch!
for /f "usebackq tokens=3 delims=: " a>ip.txt
echo ip=a in ("!ip_port!") do (
echo getip= a>ip.txt
)
adb tcpip 5555
adb kill-server
call :WIFImode
)
endlocal
exit /b 0
4. bug
- USBmod模块中
adb adb shell ifconfig wlan0
预设结果应该是这样,但是实际有所偏差,具体不知道
wlan0 Link encap:UNSPEC Driver wlan
inet addr:192.168.1.4Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80: :4ad :41a2:16df :f390/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1
RX packets : 64882 errors:0 dropped:0 overruns:0 frame:0
Tx packets :54818 errors:2 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen : 3000
RX bytes: 60754574 TX bytes: 7996326