2011-08-03 47 views
9

爲了讓自己更熟悉Android中的內容提供者,我正在製作一個小型剪貼板管理器應用程序。其核心功能是簡單地添加任何你複製到數據庫來顯示。我對Android的剪貼板框架有些熟悉,但我不確定該怎麼做的是聽取複製「事件」以知道需要將新項目添加到剪貼板。如何在Android中收聽副本

爲了澄清,我需要能夠添加一個記錄到數據庫,每當用戶複製的東西。我該怎麼做呢?

+0

您是不是打算提出一個不同的問題@Jack?您目前的鏈接似乎引導回到這個問題。 – theisenp

+0

哈哈是的,我的意思是指向鏈接奧特拉張貼:) – Jack

回答

8

如果使用API​​級11(3.0)以上,則可以使用addPrimaryClipChangedListener其被記錄here並有一些示例用法here

+1

謝謝。這種臭味對於舊的API沒有解決方案。 –

+1

的確如此,但如果你真的爲此感到絕望,你可以嘗試下面的建議,每隔一段時間檢查剪貼板(使用服務)。 –

2

你有什麼API?這個答案:Listener for clipboard content change?似乎表明,有一種方式爲Android 3.0及更高版本,但不低,不幸的是。

我唯一能想到的其他事情就是製作一個服務,每隔一段時間查詢一次剪貼板,看看它是否已更改或有新文本。這可以使用ClipBoardManager輕鬆完成。

3

把你的類中:

ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() { 
     public void onPrimaryClipChanged() { 

      // this will be called whenever you copy something to the clipboard 
     } 
    }; 

將這個裏面onCreate方法:

ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); 
clipboard.addPrimaryClipChangedListener(mPrimaryChangeListener); 

這就是全部。我希望我幫助你。