1. 程式人生 > >Android剪貼簿的妙用

Android剪貼簿的妙用

Clipboard還能玩出花

Clipboard是Android提供的一個系統服務,它提供了一個全域性的剪貼簿,讓文字、圖片、資料,在多App間共享成為可能,今天,我們來了解下它的真面目,以及被玩壞的新姿勢。

說實話,如果不是為了讓Clipboard玩出花,我真不想寫這一篇,因為——這文件寫的真是太TM詳細了。

Clipboard應用

我們先來看看一些App對Clipboard的應用,例如手機迅雷,如果你複製了一個連結,那麼開啟迅雷後,會自動檢測並提示下載:


再例如一些翻譯軟體,例如有道詞典、滬江小D,他們都有一個功能,即複製查詞,使用的也是這個原理,我這沒裝這些App,就不截圖了,再例如比較常用的手淘喵口令,實際上也是利用這個功能,當然,也有一些比較專業的Clipboard App,例如Clipboard Actions:


我們可以看見,實際上,他就是幫你解析了各種可能的剪貼簿,並對他們提供了各種後續功能的集合,確實非常實用,不過,看完今天的文章,相信你要寫一個這樣的App,估計也就分分鐘。

OK,這些就是一些Clipboard的基本使用場景,更多場景,沒有做不到,只有想不到。

基本使用

Clipboard的基本使用,就是三部曲。

獲得ClipboardManager:

Java
12ClipboardManager mClipboardManager=mClipboardManager=(ClipboardManager)getSystemService
(CLIPBOARD_SERVICE);

Copy:

Java
1 2 3 4 ClipData mClipData; <span class="hljs-built_in">String</span>text=<span class="hljs-string">"hello world"</span>; mClipData=ClipData.newPlainText(<span class="hljs-string">"test"</span>
,text); mClipboardManager.setPrimaryClip(mClipData);

Paste:

Java
123ClipData clipData=mClipboardManager.getPrimaryClip();ClipData.Item item=clipData.getItemAt(<span class="hljs-number">0</span>);<span class="hljs-built_in">String</span>text=item.getText().toString();

結束了,簡直不能再簡單,API文件也寫的非常詳細,Demo都寫了好幾個。

不止於文字

我們可以建立以下三種類型的ClipData:

型別描述
Text newPlainText(label, text)返回ClipData物件,其中ClipData.Item物件包含一個String
URI newUri(resolver, label, URI)返回ClipData物件,其中ClipData.Item物件包含一個URI
Intent newIntent(label, intent)返回ClipData物件,其中ClipData.Item物件包含一個Intent

對應的,我們也能獲取到不同型別的ClipData。

ClipboardManager管理

ClipboardManager中有很多判斷與操作方法:

型別描述
getPrimaryClip()返回剪貼簿上的當前Copy內容
getPrimaryClipDescription()返回剪貼簿上的當前Copy的說明
hasPrimaryClip()如果當前剪貼簿上存在Copy返回True
setPrimaryClip(ClipData clip)設定剪貼簿上的當前Copy
setText(CharSequence text)設定文字到當前Copy
getText()獲取剪貼簿複製的文字

玩出一朵小FaFa

在瞭解了上面這些內容後,我們就可以做一些比較有意思的東西了,例如,我們可以通過監控使用者剪貼簿中的內容,來做一些自動的推斷,例如,使用者複製了一個英文單詞,那麼我們可以推斷,使用者可能要進行翻譯,再例如,使用者複製了一個連結,那麼我們也可以推斷,使用者可能需要開啟這個連結,等等。

Google在文件中,直接給出了示例的程式碼:

相關推薦

Android剪貼簿

Clipboard還能玩出花 Clipboard是Android提供的一個系統服務,它提供了一個全域性的剪貼簿,讓文字、圖片、資料,在多App間共享成為可能,今天,我們來了解下它的真面目,以及被玩壞的新姿勢。 說實話,如果不是為了讓Clipbo

android 剪貼簿相關

copyText : 複製文字到剪貼簿 getText : 獲取剪貼簿的文字 copyUri : 複製uri到剪貼簿 getUri : 獲取剪貼簿的uri copyIntent : 複製意圖到剪貼簿 getIntent : 獲取剪貼簿的意圖 public class C

Android圖層之layer-list的基本使用介紹

1. layer-list 是啥?有啥作用? 1.1 layer-list 是什麼? 簡單理解,layer 是層,list 是列表,那麼 layer-list 就是層列表的意思。但是,是什麼層列表呢?? 其實 layer-list 是用來建立 L

Android 剪貼簿詳解

Android 提供了一個強大的剪貼簿框架,用於複製和貼上。 它支援文字、二進位制資料流或其它複雜的資料。 Android 剪貼簿框架如圖 關於這四個類的簡介如下: ClipboardManager 是系統全域性的剪貼簿物件,通過 context.getSystemSe

Android Studio Flavors的(轉)

QQ urn vps 網絡 spa 鏈接 nta 新建 AR 這兩天發現Android Studio 的Flavors用起來相當給力!這裏跟大家分享下: Flavors中文翻譯過來叫“口味”,不知道確切叫法是啥,它的功能就是允許你的APP有多個不同的版本,不同版本的代碼

Android Handler 非同步訊息處理機制的 建立強大的圖片載入類

                最近建立了一個群,方便大家交流,群號:55032675上一篇部落格介紹了Android非同步訊息處理機制,如果你還不瞭解,可以看:Android 非同步訊息處理機制 讓你深入理解 Looper、Handler、Message三者關係 。那篇部落格的最後,提出可以把非同步訊息處理

android內容複製到剪貼簿

Android提供的剪貼簿框架,複製和貼上不同型別的資料。資料可以是文字,影象,二進位制流資料或其它複雜的資料型別。 Android提供ClipboardManager、ClipData.Item和ClipData庫使用複製和貼上的框架。為了使用剪貼簿的框架,

Android Clipboard(複製/剪貼簿)

Android提供的剪貼簿框架,複製和貼上不同型別的資料。資料可以是文字,影象,二進位制流資料或其它複雜的資料型別。 Android提供ClipboardManager、ClipData.Item和ClipData庫使用複製和貼上的框架。為了使用剪貼簿的框架,需要把資料轉化為剪輯物件,然後把該物件為全系統剪

Android 複製文字內容到系統剪貼簿的最簡單實踐

package chengyujia.demo.aty; import android.content.Context; import android.os.Bundle; import android.text.ClipboardManager; import android.view.Vi

Unity3D 呼叫Android與IOS的剪貼簿

Unity3D剪貼簿 最近遇到一個需要呼叫Android與IOS裝置本身剪貼簿的需求,就是在Unity中,要將文字複製到裝置本身的剪貼簿中,然後在其他應用程式中都能貼上。 最開始在網上查到的方式是使用Unity3D本身自帶的TextEditor 類進行使用,使用方法如

Android學習之剪貼簿操作

SDK11起android.text.ClipboardManager被廢棄,使用它的子類android.content.ClipboardManager替代,同樣被廢棄還有setText/getTe

android 實現剪貼簿的貼上複製

第一種方法: EditText 結合PopupWindow實現貼上複製功能,以下只展示覆制功能程式碼 複製字串到剪貼簿管理器 String text = "abcdefg"; ClipboardManager cmb = (ClipboardMana

android開發 -- 複製文字內容到系統剪貼簿(自由複製)

直接上程式碼:(對應的類:android.content.ClipboardManager) //獲取剪貼簿管理器: ClipboardManager cm = (ClipboardManager) getSystemSe

Android系統剪貼簿(ClipboardManager)的使用: 通過程式碼複製和貼上資料

1. 概述 操作 Android 系統剪貼簿的類在 android.content 包下(SDK API 11+),主要包含下面三個類: ClipboardManager: 表示一個剪貼簿

Android App實現點選撥號、複製剪貼簿、新增手機聯絡人

1.概述 今天介紹一下實現Android App內實現點選撥號、複製剪貼簿、新增手機聯絡人等相關操作 2.實現效果 沒有gif圖 3.實現步驟 直接上程式碼: private void initService() { String[] info = n

AndroidSPDY協議提高移動端網路請求效能

    本文旨在提出一種提高移動端網路效能的可行方案。我們知道目前移動端使用的網路請求協議基本上都是http。用的最多的是http/1.1,http/2.0正在逐漸壯大,實際上http/2.0是基於google提出的SPDY協議改進而來。廢話不多說,馬上進入正題

Android之string.valueOf

對比以下兩個例子:例子1: String key = null; String aa = new StringBuilder(key).append("balance").toString(); Sys

VC++教你程式碼實現把拷貝的內容放到剪貼簿

以下是一個例項,將report控制元件拷貝下來的內容放到剪貼簿,作為文字列拷貝。 /** コピーコマンドの処理関數.  * @param なし.  * @return なし.  * @exception なし.  */ void CGTDTemplatePropDlg::m

Android複製貼上到剪貼簿

android2.1之後版本 其一:(已執行成功) import android.text.ClipboardManager; ClipboardManager clip = (ClipboardManager)getSystemService(Context.CL

android字串複製到剪貼簿

android2.1之後版本  其一: (已執行成功 ) ClipboardManager clip = (ClipboardM anager)getSystemService(Context.CLIPB OARD_SERVICE);  clip.getText(); /