我找到了在 Gingerbread AVD 中设置剪贴板文本的命令行解决方案,但是当我运行 ICS AVD 时,此命令行不起作用。
我从这个页面构建了一个脚本:Pasteing text into Android emulator clipboard using adb shell。
同样,如果我使用的是 Gingerbread AVD,这对于写入剪贴板和读取内容非常有效,但是当我写入 ICS 剪贴板时,返回的包裹只会显示“未知包”,而当我尝试阅读剪贴板,它似乎返回一个空字符串。
我找到了在 Gingerbread AVD 中设置剪贴板文本的命令行解决方案,但是当我运行 ICS AVD 时,此命令行不起作用。
我从这个页面构建了一个脚本:Pasteing text into Android emulator clipboard using adb shell。
同样,如果我使用的是 Gingerbread AVD,这对于写入剪贴板和读取内容非常有效,但是当我写入 ICS 剪贴板时,返回的包裹只会显示“未知包”,而当我尝试阅读剪贴板,它似乎返回一个空字符串。
这是如何做到的:
当 false 使用 Android 的旧 Clip API 并且当 true 使用新 Clip API 时,我使用一个 main 方法,该方法采用参数 oldApi。
/**
*
* @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);
}
我希望这个示例链接对您的答案有用。该项目的构建目标:Android 4.0 将在 ICS 的 Emulator 上运行。
http://www.edumobile.org/android/android-tutorial/clipboard-example-in-android-development/
这个例子展示了如何使用剪贴板管理器在 android 中复制 text/intent/url。