2012-07-16 51 views
3

我想實現一個偵聽器,它將偵聽是否有人從任何應用程序複製了任何東西。Android:爲剪貼板管理器實現廣播接收器

我聽說ClipboardManager.OnPrimaryClipChangedListener()它會聽複製動作,但這不是一個接收器(據我所知)。我得到了一個sample application,這個應用程序背後的邏輯是,從系統啓動啓動服務並運行一個服務,它將聽取複製動作,但我認爲這會耗盡電池。我對嗎?

那麼,我該如何實現一個廣播接收器,它可以收聽複製操作。

回答

10

這裏的聽衆:

class ClipboardListener implements ClipboardManager.OnPrimaryClipChangedListener 
{ 
    public void onPrimaryClipChanged() 
    { 
     // do something useful here with the clipboard 
     // use getText() method 
    } 
} 

只需註冊吧:

ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); 
clipBoard.addPrimaryClipChangedListener(new ClipboardListener()); 
+0

是從這個背景也聽?如果我在應用程序中添加了此偵聽器,用戶運行我的應用程序,然後切換到另一個應用程序(我的應用程序將在後臺運行),那麼此列表器將能夠偵聽用戶是否在其他應用程序中執行拷貝? – 2012-07-16 09:26:13

+1

是的,這將在剪貼板更改的背景中偵聽(但如果用戶切換到另一個,則必須確保您的應用程序正在運行)。一旦偵聽器被調用,從剪貼板獲取數據並做你想要的。 – 2012-07-16 09:28:14

+0

還有一個問題(我對此感到抱歉),這將與廣播接收器一樣,就像它們在後臺工作,直到用戶殺死應用程序爲止。或者這將工作,直到Android操作系統由於內存分類而從內存中殺死應用程序? – 2012-07-16 09:35:53