Android复制粘贴剪切板内容的一种方法
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;
}

浙公网安备 33010602011771号