华为手机投屏到macos15.3 亲测可用
博主也是找了很多方法实现投屏,总觉得比较麻烦,最后找到一个最丝滑的,话不多说,直接上干货。基于华为mate40pro 鸿蒙4.2,macos15.3 M3芯片, 实现局域网华为手机投屏到macos,并且macos可直接操作。
前置准备:
- 华为手机开启开发者模式和USB调试。
- Mac安装adb工具和scrcpy(通过Homebrew)
# macos 安装
brew install scrcpy android-platform-tools
先用数据线连接华为手机和macos
macos终端输入
adb devices # 确认设备已授权
adb tcpip 5555 # 激活无线端口
拔掉数据线
macos终端输入
adb connect 手机IP:5555 # 手动连接
# 终端执行连接尝试
scrcpy --keyboard=uhid --turn-screen-off --video-bit-rate 20M --max-fps 60 --render-driver=metal
自动化连接脚本
#!/bin/bash
# 定义默认端口(可修改)
ADB_PORT="5555"
# 函数:自动获取设备IP(需已授权ADB调试权限)
get_device_ip() {
adb shell ip route | awk '/wlan0/ {print $9}' 2>/dev/null # 提取Wi-Fi接口IP :ml-citation{ref="1,2" }
# 函数:连接设备并启动Scrcpy
connect_device() {
local device_ip=$1
echo "尝试连接:${device_ip}:${ADB_PORT}..."
CONNECT_RESULT=$(adb connect ${device_ip}:${ADB_PORT} 2>&1)
if [[ $CONNECT_RESULT == *"connected to"* ]]; then
scrcpy --keyboard=uhid --turn-screen-off --video-bit-rate 20M --max-fps 60 --render-driver=metal$
else
echo "错误:$CONNECT_RESULT"
return 1
fi
}
# 主逻辑
if [ $# -ge 1 ]; then
# 使用手动输入的IP
connect_device $1 || exit 1
CONNECT_RESULT=$(adb connect ${device_ip}:${ADB_PORT} 2>&1)
if [[ $CONNECT_RESULT == *"connected to"* ]]; then
scrcpy --keyboard=uhid --turn-screen-off --video-bit-rate 20M --max-fps 60 --render-driver=metal$
else
echo "错误:$CONNECT_RESULT"
return 1
fi
}
# 主逻辑
if [ $# -ge 1 ]; then
# 使用手动输入的IP
connect_device $1 || exit 1
else
# 尝试自动获取IP
DEVICE_IP=$(get_device_ip)
if [ -n "$DEVICE_IP" ]; then
connect_device $DEVICE_IP
else
echo "⚠️ 自动获取失败,请手动输入IP或执行:"
echo "1. 用USB连接手机"
echo "2. 执行 adb tcpip ${ADB_PORT} 授权调试 :ml-citation{ref="3,4" data="citationList"}"
read -p "或手动输入设备IP:" MANUAL_IP
connect_device $MANUAL_IP || exit 1
fi
fi
保存为huawei_mate40pro_connect.sh, 赋权
chmod +x huawei_mate40pro_connect.sh
./huawei_mate40pro_connect.sh