如何实现自动将文件从PC端传输到手机端?关于传统的文件操作是没有办法实现的,这主要是因为手机连接用的不是文件系统。
如果我们从PC端查看文件路径,文件夹路径显示的是This PC
这种是不被文件类库识别的。
一般来说,我们可以通过adb
来实现,在使用adb
中最常见的问题,就是
- 原始文件不存在
- 检查文件路径,如果路径存在空格,用
r
加前缀(针对于Airtest)
- 检查文件路径,如果路径存在空格,用
- 目标文件不存在
- 手机端初始路径是
/storage/sdcard0
,后续再接真实路径
- 手机端初始路径是
- 操作执行完成后文件在手机端不显示
- 需求通过
broadcast
来刷新文件
- 需求通过
- 文件传输成功,也刷新了,但是文件在手机显示的不是最新的
- 有可能是复制替换的同一文件名,试试在
push
到手机端时,如果是覆盖同一文件,建议修改文件名 - 一般一段时间后会刷新,由手机系统控制,需要实时刷新,建议用步鄹一
- 有可能是复制替换的同一文件名,试试在
这里分享两种方式:
- 一种是直接通过
cmd
来执行1
2adb push 'file path in pc' '/storage/sdcard0/target path in phone'
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d 'file:///storage/sdcard0/target path in phone' - 另外一种是通过Airtest的
Push
1
2
3
4
5
6
7
8
9
10
11
12
13
14# -*- encoding=utf8 -*-
__author__ = "Edward"
from airtest.core.api import *
from airtest.core.android.android import *
auto_setup(__file__)
android = Android()
baseFolder = r'C:/Users/Edward/System Folder/Desktop/苏宁/Auto/';
targetFolder = r'/storage/sdcard0/00/';
android.adb.push(baseFolder + group + '/' +filename,targetFolder + group + '/' +filename);
android.adb.shell(r'am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://' + targetFolder + group + '/' +filename);