Home 안드로이드 클립보드 복사하기
Post
Cancel

안드로이드 클립보드 복사하기

안드로이드 앱 개발을 하다보면 특정 텍스트를 유저 클립보드에 복사시키고 싶을 때가 있다 이번 글에선 해당 기능을 구현하는 법에 대해 간단히 설명하겠다

구현 방법

구현 방법은 매우 간단한데 Kotlin으로는 아래와 같고

1
2
3
4
5
fun clipboardCopy(text: String) {
    val clipboardManager = getSystemService(AppCompatActivity.CLIPBOARD_SERVICE) as ClipboardManager
    val clipData = ClipData.newPlainText("label", text)
    clipboardManager.setPrimaryClip(clipData)
}

Java로는 아래와 같이 할 수 있다

1
2
3
4
5
public void clipboardCopy(String text) {
    ClipboardManager clipboardManager = (ClipboardManager) getSystemService(AppCompatActivity.CLIPBOARD_SERVICE);
    ClipData clipData = ClipData.newPlainText("label", text);
    clipboardManager.setPrimaryClip(clipData);
}

코드 설명

혹시나 해당 코드가 어떤 역할을 하는지 궁금한 사람을 위해서 각 부분을 나눠서 설명해보려고 한다

1. 클립보드 매니저 가져오기

1
val clipboardManager = getSystemService(AppCompatActivity.CLIPBOARD_SERVICE) as ClipboardManager
  • getSystemService(AppCompatActivity.CLIPBOARD_SERVICE)는 현재 Context에서 시스템 서비스 중 클립보드 서비스를 가져오는 메소드이다

  • ClipboardManager는 클립보드의 내용을 관리하는 클래스이며 AppCompatActivity.CLIPBOARD_SERVICE는 클립보드 서비스의 이름을 나타낸다

2. 클립 데이터 생성하기

1
val clipData = ClipData.newPlainText("label", text)
  • ClipData.newPlainText(“label”, text)는 ClipData 객체를 생성한다

  • “label” 부분은 클립보드에 저장될 데이터의 레이블을 지정하는 문자열이며 사용자에게 클립 데이터의 용도를 설명하는데 사용되는 부분이다 실제 크게 영향을 미치는 부분은 아니지만 클립보드를 관리하는 앱이나 디버깅 도구에서 데이터를 식별하는데 도움이 될 수 있다고 한다

  • text는 클립보드에 저장할 실제 문자열 데이터 부분이다 우리 코드에서는 함수의 매개변수로 받아서 넣고 있다

3. 클립 데이터 클립보드에 저장하기

1
clipboardManager.setPrimaryClip(clipData)
  • clipboardManager.setPrimaryClip(clipData)는 클립보드에 clipData 객체를 저장하는 부분으로 setPrimaryClip 메소드는 클립보드의 주 클립(primary clip)을 설정하는 메소드기에 이 clipData가 현재 클립보드의 활성 데이터가 된다
This post is licensed under CC BY 4.0 by the author.