方法は次のとおりです。
falseがAndroidの古いClipAPIを使用し、trueが新しいClip APIを使用する場合、paramoldApiを受け取るmainメソッドを使用します。
プロジェクト全体:https ://github.com/daniel-c05/LightClipper/blob/master/src/com/deadpixels/light/clipper/utils/ClipHelper.java
/**
*
* @param context The context
* @param label The label to show to the user via {@code ClipDescription}
* @param value The actual value to store on the clipboard via {@link ClipHelper#addItemToClipboard(Context, String, String)}
* @param oldAPI Whether or not we are running on pre-HoneyComb API.
*/
public static void addItemToClipboard(final Context context, final String label, final String value, final boolean oldAPI) {
if (oldAPI) {
addTextToClipboard(context, value);
}
else {
addItemToClipboard(context, label, value);
}
}
/**
* This is only called when oldAPi is passed as false on {@link #addItemToClipboard(Context, String, String, boolean)}
* @param context The context, required to get the Cliboard System Service.
* @param label The label to show to the user via {@code ClipDescription}
* @param value The value to store on the clipboard.
*/
@SuppressLint("NewApi")
private static void addItemToClipboard (final Context context, final String label, final String value) {
ClipboardManager manager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData.Item item = new Item(value);
ClipDescription description = new ClipDescription(label, new String [] {ClipDescription.MIMETYPE_TEXT_PLAIN});
ClipData data = new ClipData(description, item);
manager.setPrimaryClip(data);
}
/**
* This is only called when oldAPi is passed as true on {@link #addItemToClipboard(Context, String, String, boolean)}
* @param context The context, required to get the Cliboard System Service.
* @param value The value to store on the clipboard.
*/
@SuppressWarnings("deprecation")
private static void addTextToClipboard (final Context context, final String value) {
android.text.ClipboardManager manager = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
manager.setText(value);
}