Диспетчер диспетчера буфера обмена (только) на android 2.x

Я только что обнаружил, что этот код отправляется, чтобы разбивать мое приложение только на android 2.x

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
clipboard.setText(textView1.getText());

Я думаю... Мне нужно добавить версию android для проверки перед запуском этого метода, который является правильным кодом для разрешения запуска также на android 2.x?

Спасибо!

Ответ 1

API буфера обмена изменился на уровне 11 Android SDK. Вот несколько кодов для обработки обеих версий из arinkverma.

Я надеюсь, что это может однажды войти в библиотеку поддержки.


@SuppressWarnings("deprecation")
public void putText(String text){
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES. HONEYCOMB) {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
        clipboard.setText(text);
    } else {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE); 
        android.content.ClipData clip = ClipData.newPlainText("simple text",text);
        clipboard.setPrimaryClip(clip);
    }
}

@SuppressWarnings("deprecation")
public String getText(){
    String text = null;
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES. HONEYCOMB ) {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
        text =  clipboard.getText().toString();
    } else {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE); 
        text =  clipboard.getText().toString();
    }
    return text;
}

Ответ 2

Спасибо Snicolas, указав ссылку. Надеюсь, это решит проблему. Также не забудьте включить библиотеку уровня api, иначе вы получите ошибку при сборке.

Цель сборки была установлена ​​на Api 7-15, предпочтительно 10 Предварительный просмотр файла Манифест

<uses-sdk android:maxsdkversion="15" android:minsdkversion="7" android:targetsdkversion="10"></uses-sdk>

Ответ 3

Версия Snicolas очень приятная. Но другая часть getText() имеет ошибку.

Полная версия:

@SuppressWarnings("deprecation")
public String getText(Activity a){
    String text = null;
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB ) {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) a.getSystemService(Context.CLIPBOARD_SERVICE);
        text =  clipboard.getText().toString();
    } else {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) a.getSystemService(Context.CLIPBOARD_SERVICE);
        text = clipboard.getPrimaryClip().getItemAt(0).getText().toString();
    }
    return text;
}