1 Clipper 介绍
Clipper 是一款简单的 app, 它可以通过一行 adb shell 命令来和安卓系统剪切板服务交互
官方说明: https://github.com/majido/clipper
2 App 下载
下载地址: clipper.apk
3 使用方法
安装 App
启动广播服务
adb shell am startservice ca.zgrs.clipper / .ClipboardService
get 方法: print the value in clipboard into logs
am broadcast - a clipper.get
set 方法: sets the clipboard content to the string passed via extra parameter "text"
am broadcast - a clipper.set - e text "this can be pasted now"
4 appium 中使用的一个例子
某个安卓手机先安装 Clipper.apk
然后开启广播
- // 执行 shell 命令开启 android 广播服务
- Process process = Runtime.getRuntime().exec("adb -s" + udid + "shell am broadcast -a clipper.get");
- InputStream is = process.getInputStream();
- InputStreamReader isr = new InputStreamReader(is, "utf-8");
- BufferedReader br = new BufferedReader(isr);
- String urlStr = "";
- String line = "";
- while ((line = br.readLine()) != null) {
- urlStr += line;
- }
- if (urlStr.contains("result=0")) {
- Runtime.getRuntime().exec("adb -s" + udid + "shell am startservice ca.zgrs.clipper/.ClipboardService");
- }
其中如果有多台手机, udid 为事先定义的设备名称
capabilities.setCapability("deviceName", udid);
若某个 url 信息已在剪切板中, 获取页面 url 地址
- private String getUrl() throws IOException {
- String url = "";
- BufferedReader br = null;
- try {
- Process process = Runtime.getRuntime().exec("adb -s" + udid + "shell am broadcast -a clipper.get");
- InputStream is = process.getInputStream();
- InputStreamReader isr = new InputStreamReader(is, "utf-8");
- br = new BufferedReader(isr);
- } catch(Exception e) {
- System.out.println("广播服务出现异常");
- }
- try {
- String urlStr = "";
- String line = "";
- while ((line = br.readLine()) != null) {
- urlStr += line;
- }
- String[] s = null;
- if (urlStr.contains("data=\"")) {
- s = urlStr.split("data=\"");
- } else {
- System.out.println("请启动广播服务");
- }
- url = s[1].toString().trim().substring(0, s[1].length() - 1);
- } catch(Exception e) {
- System.out.println("剪切板获取 url 异常");
- }
- br.close();
- return url;
- }
来源: http://www.bubuko.com/infodetail-2497616.html