处理弃用的android.text.ClipboardManager

android.text.ClipboardManager从API级别11开始被弃用,并被android.content.ClipboardManager ( source )取代。

我如何编写支持这两种情况的代码? 导入android.content.ClipboardManager并使用它在11+中工作,但强制在10closures。更改导入到android.text.ClipboardManager抛出一堆11 +的弃用警告。

我怎样才能顺利处理两个案件? 我需要导入什么?

Solutions Collecting From Web of "处理弃用的android.text.ClipboardManager"

我结束了使用旧的方式(android.text.ClipboardManager和来自这个答案的代码),以及一些@SuppressWarnings(“deprecation”)注释。

明确:

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

由于必须继续在较旧的设备上工作,因此不推荐使用的代码不会从Android中删除。

参考这个答案 :

 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"); } 

如果您仍然支持<SDK 11,您正在做太多的工作。 将min设置为15并使用以下代码:

  ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label for text", "text to copy"); clipboard.setPrimaryClip(clip);