0

Gingerbread AVD でクリップボード テキストを設定するコマンド ライン ソリューションを見つけましたが、このコマンド ラインは ICS AVD を実行しているときに機能しません。

このページからスクリプトを作成しました: Pasteing text into Android emulator clipboard using adb shell

繰り返しますが、Gingerbread AVD を使用している場合、これはクリップボードへの書き込みと内容の読み取りには問題なく機能しますが、ICS クリップボードに書き込むと、戻ってきた小包には「不明なパッケージ」とだけ表示されます。クリップボードを読み取ると、空の文字列が返されるようです。

4

2 に答える 2

0

方法は次のとおりです。

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);         
}
于 2013-02-16T22:30:18.577 に答える
0

この例のリンクがあなたの答えに役立つことを願っています。このプロジェクトのビルド ターゲット: ICS であるエミュレーターで動作する Android 4.0。

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

この例では、クリップボード マネージャーを使用して Android でテキスト/インテント/URL をコピーする方法を示します。

于 2013-02-16T22:04:44.710 に答える