0

I found a command-line solution to set the clipboard text in a Gingerbread AVD, but this command-line doesn't work when I'm running an ICS AVD.

I built a script from this page: Pasting text into Android emulator clipboard using adb shell .

Again, this works fine for writing to the clipboard and reading the contents, if I'm using a Gingerbread AVD, but when I write to the ICS clipboard, the parcel that comes back just says "Unknown package", and when I attempt to read the clipboard, it appears to return an empty string.

Community
  • 1
  • 1
David M. Karr
  • 14,317
  • 20
  • 94
  • 199

2 Answers2

0

I hope this Link of Example will work for your answer . This project's Build Target: Android 4.0 that will work on Emulator which is ICS .

http://www.edumobile.org/android/android-tutorial/clipboard-example-in-android-development/

This example shows how to use clipboard manager to copy text/intent/url in android.

Sam
  • 1
0

Here's how to do it:

I use a main method that takes a param oldApi when false uses Android's old Clip APIs and when true uses the new Clip APIs.

Full project: 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);         
}
daniel_c05
  • 11,438
  • 17
  • 60
  • 78