📋
Jetpack ComposeからClipboardを使う
AndroidのSystem Serviceが面倒を見る領域にコピペするのでContext経由でSystem Serviceにアクセスするわけだったけど
Composeからも簡単にアクセスできそう
ServiceManagerではAccesibilityとClipboardManagerのInterfaceがCompose向けに用意されていて簡易にアクセスできる。これが
val clipboardManager = ContextCompat.getSystemService(
LocalContext.current,
ClipboardManager::class.java
)
val clip: ClipData = ClipData.newPlainText(
"label",
"copy text"
)
clipboardManager?.setPrimaryClip(clip)
こうじゃ
LocalClipboardManager.current.setText(AnnotatedString("copy text"))
もちろんLocalContextと同じくComposableのスコープ内で動作するのでonClickの中で直接呼び出し等はできない。
Discussion