scrcpy之将Android手机投屏到Linux电脑实践

scrcpy之将Android手机投屏到Linux电脑实践

参考:https://zhuanlan.zhihu.com/p/366378837

A 安装与USB投屏

  1. 电脑端安装投屏程序
sudo apt install -y  scrcpy
  1. 手机端设置
    手机端无需安装任何软件,只需开启【开发者选项】-【USB调试】及相关选项,比如我开启了【USB调试、USB调试(安全设置)、无线调试、USB安装】
    开启【USB调试】相关选项后,用USB数据线连接电脑与手机,设置连接模式为【传输照片(PTP)】

  2. 电脑端启动投屏程序投屏

$ scrcpy

这样就可以在电脑上看到手机屏幕了

B 一些命令

adb shell  xxx       #--- 相当于在手机上运行shell命令【xxx】

adb shell  ls /data                      #--- 查看手机中的root根目录,如果手机未root,则无权限打开
adb shell  ls /storage/emulated/0        #--- 查看手机中的文件管理器根目录

adb shell  ip route | awk '{print $9}'    #--- 查看手机ip
adb shell ss -tnl                         #--- 查看手机监听端口
adb tcpip 6666                            #--- 修改手机监听端口为【6666】
adb connect 192.168.2.16:6666             #--- 通过网络连接到手机

adb devices           #--- 查看设备列表

# adb 命令很强大,请自行百度

scrcky                #--- 将手机屏幕投屏到电脑屏幕

C 命令演示

^_^ kevin@TM1701-b38cbc23:~$ adb shell  ls /data      #--- 未root,则无权限
ls: /data: Permission denied

^_^ kevin@TM1701-b38cbc23:~$ adb shell  ls /storage/emulated/0
好多文件

^_^ kevin@TM1701-b38cbc23:~$ adb shell  ip route | awk '{print $9}'
10.23.13.111
192.168.2.16

^_^ kevin@TM1701-b38cbc23:~$ adb devices 
List of devices attached
90e714b7	device
192.168.2.16:6666	device

D 通过wifi网络投屏

准备工作:

确保可以通过USB投屏后,将手机与电脑连接到同一个局域网的wifi,并设置手机开启【开发者选项】-【无线调试】,将【开发者选项】-【默认USB配置】改为【传输照片(PTP)】,改为【传输文件(MTP)】方式也行。

192.168.2.16 是我手机连接到WiFi时的IP地址

下面的步骤更多是让你知道原理

1 查看当前监听端口列表

^_^ kevin@TM1701-b38cbc23:~$ adb shell ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
Cannot open netlink socket: Permission denied
LISTEN      0      0      0.0.0.0:18154              0.0.0.0:*
LISTEN      0      0      0.0.0.0:15552              0.0.0.0:*
LISTEN      0      0            *:61593                    *:*
LISTEN      0      0            *:42917                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:38781                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:37479                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:40457                    *:*

2 修改手机监听端口为【6666】,这样容易记

^_^ kevin@TM1701-b38cbc23:~$ adb tcpip 6666       #--- 修改手机监听端口为【6666】
restarting in TCP mode port: 6666

3 查看修改后的监听端口列表

^_^ kevin@TM1701-b38cbc23:~$ adb shell ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
Cannot open netlink socket: Permission denied
LISTEN      0      0      0.0.0.0:18154              0.0.0.0:*
LISTEN      0      0      0.0.0.0:15552              0.0.0.0:*
LISTEN      0      0            *:61593                    *:*
LISTEN      0      0            *:6666                     *:*
LISTEN      0      0            *:37583                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:38781                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:37479                    *:*
LISTEN      0      0       [::ffff:127.0.0.1]:40457                    *:*
# 这里可以看到监听端口已经改(增加)为【6666】
# 【37583】这个可以从开发者选项-无线调试那里看到,干啥用的? 和【6666】啥关系

4 adb程序通过网络连接到手机

^_^ kevin@TM1701-b38cbc23:~$ adb connect 192.168.2.16:6666
already connected to 192.168.2.16:6666
# 或者:
^_^ kevin@TM1701-b38cbc23:~$ adb connect 192.168.2.16:37583
already connected to 192.168.2.16:37583
# 可以看到【37583】和【6666】这两个都可以连接,【37583】这个端口是随机,每次启动端口都不一样;【6666】这个增加的,一次修改,永久有效

5 重新投屏

拔掉SUB数据线,电脑端运行投屏程序即可:

^_^ kevin@TM1701-b38cbc23:~$ scrcpy

每次投屏前,先运行adb connect 192.168.2.16:6666,然后启动scrcpy即可。

如果需要重新使用USB数据线连接,需要先断开adb连接,方法是:

O_O kevin@TM1701-b38cbc23:~$ adb disconnect 
disconnected everything`

上个图:

image-20220808112157146

6 异常处理

  • 错误1:

如果【开发者选项】-【默认USB配置】不是【传输照片(PTP)】或【传输文件(MTP)】传输方式,启动scrcpy会出现以下错误:

^_^ kevin@TM1701-b38cbc23:~$ scrcpy
INFO: scrcpy 1.12.1 <https://github.com/Genymobile/scrcpy>
adb: error: failed to get feature set: no devices/emulators found
ERROR: "adb push" returned with value 1
  • 错误2:
^_^ kevin@TM1701-b38cbc23:~$ scrcpy
INFO: scrcpy 1.12.1 <https://github.com/Genymobile/scrcpy>
adb: error: failed to get feature set: more than one device/emulator
ERROR: "adb push" returned with value 1

你可能有多个多个设备供选择,查看可供选择的设备列表:

^_^ kevin@TM1701-b38cbc23:~$ adb devices 
List of devices attached
90e714b7	device
192.168.2.16:6666	device

断开USB数据线,或运行adb disconnect断开网络连接,就可以了

  • 错误3:
unable to connect to 192.168.2.16:6666: Connection refused

可能:

A、手机的IP变了,修正IP即可;

B、你的手机重启启动了,他会自动关闭【开发者选项】-【无线调试】。重新开启后,还需重新设置监听端口【6666】

最后

img

爱你!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值