Android剪贴板数据转文本开发简介
如果应用程序只能处理文本,可用 ClipData.Item.coerceToText() 方法进行转换,就可以从剪贴板上复制非文本数据。
这种方法将把 ClipData.Item 中的数据转换为文本,并且返回一个 CharSequence 对象。ClipData.Item.coerceToText() 的返回值依据 ClipData.Item 中的数据格式来确定。
1)Text
若 ClipData.Item 是文本(getText() 不为 null),则 coerceToText() 返回文本。
2)URI
若 ClipData.Item 是一个 UR(IgetUri() 不为 null),则 coerceToText() 会尝试将其视为 Content URI。
- 若 URI 是一个 Content URI 且 Provider 能返回文本流,则 coerceToText() 返回文本流。
- 若 URI 是一个 Content URI 但 Provider 无法提供文本流,则 coerceToText() 返回 URI 的字符串表示形式,该字符串表示形式与 Uri.toString() 的返回值一致。
- 若 URI 不是一个 Content URI,则 coerceToText() 返回 URI 的字符串表示形式,该字符串表示形式与 Uri.toString() 的返回值一致。
3)Intent
如果 ClipData.Item 是一个 Inten(tgetIntent() 不为 null),则 coerceToText() 将其转换为 Intent URI 后返回。该字符串表示形式与 Intent.toUri(URI_INTENT_SCHEME) 的返回值一致。
剪贴板的整体框架如图 1 所示。
发表评论