2011-08-03 21 views
9

Androidのコンテンツプロバイダをもっと慣れさせるために、私は小さなクリップボードマネージャアプリケーションを作っています。その中心的な機能は、コピーするものを単にデータベースに追加して表示することです。私はAndroidのClipboardフレームワークにはある程度精通していますが、どうすればよいかわからないのは、新しい項目をクリップボードに追加する必要があることを知るためにコピー "イベント"を待ち受けることです。Androidでコピーを聴く方法

明確にするために、ユーザーが何かをコピーするたびにデータベースにレコードを追加できるようにする必要があります。これはどうすればいいですか?

+0

別の質問@Jackを提案することを意味しましたか?あなたの現在のリンクは、この質問に戻ります。 – theisenp

+0

ハハはい、私はOtraが投稿したリンクを指し示すつもりだった:) – Jack

答えて

8

APIレベル11(3.0)以上を使用している場合は、hereと記載されているaddPrimaryClipChangedListenerを使用できます。使用例はhereです。あなたのクラスの中に入れ

+1

ありがとう。この種の嫌なことは、古いAPIのためのこれに対する解決策はないということです。 –

+1

真実ですが、もしあなたが本当に欲しいのであれば、以下の提案を試してみて、たびに頻繁に(サービスを使って)クリップボードをチェックすることができます。 –

2

どのようなAPIがありますか?この回答:Listener for clipboard content change?は、アンドロイド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); 

すべてです。私はあなたを助けたと思う。

関連する問題