Dealing with deprecated android.text.ClipboardManager

后端 未结 4 648
情歌与酒
情歌与酒 2021-02-07 13:09

android.text.ClipboardManager was deprecated since API level 11, and replaced with android.content.ClipboardManager (source).

How do I write c

相关标签:
4条回答
  • 2021-02-07 13:49

    If you are still supporting < SDK 11 you are doing too much work. Set min to 15 and use this code:

     ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     ClipData clip = ClipData.newPlainText("label for text", "text to copy");
     clipboard.setPrimaryClip(clip);
    
    0 讨论(0)
  • 2021-02-07 13:54

    Explicitly:

        @SuppressWarnings("deprecation")
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        clipboard.setText(shareViaSMSBody);
    

    Since this has to keep working on older devices, it is likely that the deprecated code will not be removed from Android.

    0 讨论(0)
  • 2021-02-07 13:59

    I ended up just using the old way (android.text.ClipboardManager and the code from this answer), along with a couple @SuppressWarnings("deprecation") annotations.

    0 讨论(0)
  • 2021-02-07 14:02

    Referring to this answer:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context
            .getSystemService(Context.CLIPBOARD_SERVICE);
    final android.content.ClipData clipData = android.content.ClipData
            .newPlainText("text label", "text to clip");
    clipboardManager.setPrimaryClip(clipData);
    } else {
    final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context
            .getSystemService(Context.CLIPBOARD_SERVICE);
    clipboardManager.setText("text to clip");
    }
    
    0 讨论(0)
提交回复
热议问题