1. 程式人生 > >Android復制粘貼剪切板內容的一種方法

Android復制粘貼剪切板內容的一種方法

release d+ load ces sta hub 服務 ast url

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;
    }


Android復制粘貼剪切板內容的一種方法