2013-01-12 26 views
2

我正在嘗試做一個通知操作(適用於Android 4.1+),它會將一些文本複製到剪貼板。 我讀到了複製粘貼功能的參考,現在我有這個:通過通知操作複製到剪貼板

 ClipboardManager clipboard = (ClipboardManager) 
      mContext.getSystemService(Context.CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText("simple text","Hello, World!"); 

我不知道如何把它變成將被放入的PendingIntent的意圖。

如果你能給我一些例子並解釋它 - 這將是偉大的!我是一名android開發人員。 預先感謝您。

編輯: 我發現這一點:https://stackoverflow.com/a/12601766/1866009但我不理解是正確的。

回答

4

檢查本教程的Android通知操作:

http://www.vogella.com/articles/AndroidNotifications/article.html

創建的PendingIntent的時候,給它會通過你的廣播接收器接收定製的意圖(在你的清單中定義,例如here),然後做任何你想要的東西(例如複製到剪貼板)。

+0

非常感謝您!我閱讀了這些教程並解決了我的問題! – Dennis

6

隨着android developer的幫助問題是由這個代碼解決:

 BroadcastReceiver brCopy = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      ClipboardManager clipboard = (ClipboardManager) 
        mContext.getSystemService(Context.CLIPBOARD_SERVICE); 
      ClipData clip = ClipData.newPlainText("label", "text"); 
      clipboard.setPrimaryClip(clip); 
      Toast.makeText(mContext, "Copied!", Toast.LENGTH_SHORT).show(); 

     } 
    }; 
    IntentFilter intentFilter = new IntentFilter("com.example.ACTION_COPY"); 
    mContext.registerReceiver(brCopy, intentFilter); 

    Intent copy = new Intent("com.example.ACTION_COPY"); 
    PendingIntent piCopy = PendingIntent.getBroadcast(mContext, 0, copy, PendingIntent.FLAG_CANCEL_CURRENT); 

    mBuilder.addAction(android.R.drawable.ic_menu_copy, "Copy", piCopy); 
+0

你可以用水平分隔符把它放在問題本身上。 :) –

+1

另外:我們鼓勵用戶添加他們自己的答案,並且通常不鼓勵將編輯解決方案追溯到他們的問題中。對於未來的讀者來說,閱讀一個問題最初是如何被問到的(通過適當的改進),然後在下面找到答案會好得多。這也提高了API所攜帶數據的質量。 +1給丹尼斯。 – halfer

相關問題