Android 剪切板相关

Android 剪切板相关

本篇文章简单介绍android中的ClipboardManager.

1:简介

ClipboardManager是android中用于管理剪切板一个类.它允许应用程序读取和写入剪切板数据,包括文本,图片等.

2: 获取实例

获取实例也很简单.如下:

ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

3: 获取剪切板内容

获取剪切板文本数据:

public static String getCopyText(Context context) {if (clipboardManager == null) {clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);}if (null == clipboardManager) return null;ClipData clipData = clipboardManager.getPrimaryClip();if (clipData != null && clipData.getItemCount() > 0) {return clipData.getItemAt(0).getText().toString();}return null;
}

getPrimaryClip()方法获取剪切板的当前内容,返回一个ClipData对象.

4: 设置剪切板内容

  1. 设置剪切板文字:

    public static void setCopyText(Context context,String s) {try {if (clipboardManager == null) {clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);}if (null == clipboardManager) return;ClipData clipData = ClipData.newPlainText(null, s);clipboardManager.setPrimaryClip(clipData);} catch (Throwable e) {Log.e("xxxxx", "setCopyText: ", e);}}
    

5: 监听剪切板

 private ClipboardManager.OnPrimaryClipChangedListener clipChangedListener = () -> {ClipData clipData = clipboardManager.getPrimaryClip();String clipStr = "";if (clipData != null && clipData.getItemCount() > 0) {clipStr = clipData.getItemAt(0).getText().toString();}Log.i("xxxxx", "onPrimaryClipChanged: " + clipStr);};clipboardManager.addPrimaryClipChangedListener(clipChangedListener);

但是addPrimaryClipChangedListener只能监听当前应用程序剪切板内容的变化,无法监测其他应用,至于原因就是为了安全性和隐私.

6:移除监听

if (clipboardManager != null) {clipboardManager.removePrimaryClipChangedListener(clipChangedListener);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UEFI】数字签名的使用

简介 1) 数字签名是指附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换能使数据单元的接收者确认数据单元的来源和数据完整性,并保护数据,防止被人伪造。签名机制的本质特征是该签名只通过签名者的私有…

使用python查看官网是否发布新的内容

目录 前言 第一章、python介绍和使用pip install下载包 1.python介绍 2.使用vscode编写python 3.pip install的使用 第二章、查看官网是否发布新的内容 第三章、代码实现 目录结构 代码实现 check_new_news.py files.py news.py main.py file.txt 运行演示 前言 也…

python读写csv和json数据

python读写csv数据 在Python中,读写CSV(Comma Separated Values)数据通常使用内置的csv模块。以下是一个简单的例子,展示了如何使用csv模块来读取和写入CSV文件。 首先,假设我们有一个名为example.csv的文件&#xff0…

算法训练营day34(补), 动态规划2

//62. 不同路径 func uniquePaths(m int, n int) int { dp : make([][]int, m) // 行赋初始值为1 for i : range dp { dp[i] make([]int, n) dp[i][0] 1 } // 列赋初始值为1 for j : 0; j < n; j { dp[0][j] 1 } for i : 1; i < m; i { for j : 1; j < n; j { dp[…

【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog 前言 在以前的Databricks中&#xff0c;主要由Workspace和集群、SQL Warehouse组成&#xff0c; 这两年Databricks公…

我们在SqlSugar开发框架中,用到的一些设计模式

我们在《SqlSugar开发框架》中&#xff0c;有时候都会根据一些需要引入一些设计模式&#xff0c;主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用&#xff0c;我们的目的是解决问题&#xff0c;并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模…

【YOLOX-nano】YOLOX-nano的推理实践

目录 1 pt文件和pth文件的区别 2 安装依赖库 3 模型下载 4 实践 YOLOX-nano.pth模型转换为YOLOX-nano.onnx模型</

【selenium】WebElement、WebDriver、三种等待方式

目录 一、WebElement 1、click()——触发当前元素的点击事件 2、clear()——清空内容 3、sendKeys(...) 4、按键操作&#xff0c;回车 解决button不好定位和点击的情况&#xff0c;用回车去解决 5、getTagName()——获取元素的的标签名 6、getAttribute(当前标签具有的属…

SpringBoot对于SpringMVC的支持

创建项目 版本说明这里使用的 SpringBoot 2.0.0.Release SpringBoot对于SpringMVC的支持 在之前的开发中很多场景下使用的是基于xml配置文件或者是Java配置类的方式来进行SpringMVC的配置。一般来讲&#xff0c;初始的步骤如下所示 1、初始化SpringMVC的DispatcherServlet2、…

设计模式-工厂方法模式(C++)

工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但将实际的对象创建过程延迟到子类中。这种模式解耦了具体产品的创建过程&#xff0c;使得系统更加灵活和可扩展。 下面是一个使用 C…

pytest结合Allure生成测试报告

文章目录 1.Allure配置安装2.使用基本命令报告美化1.**前置条件**2.**用例步骤****3.标题和描述****4.用例优先级**3.进阶用法allure+parametrize参数化parametrize+idsparametrize+@allure.title()4.动态化参数5.环境信息**方式一****方式二**6.用例失败截图1.Allure配置安装 …

Jmeter基础(2) 目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前&#xff0c;需要先对工具的目录有些了解&#xff0c;也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…

代码随想录 | 216.组合总和III● 17.电话号码的字母组合

216.组合总和III 思路&#xff1a; 和77. 组合思路一致&#xff0c;只不过多了一个cursum用来记录总和。 代码&#xff1a; class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:path []result []def backtracking( k, n, start, cursum):i…

web安全学习笔记【15】——信息打点(5)

信息打点-CDN绕过&业务部署&漏洞回链&接口探针&全网扫描&反向邮件 #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CMS指…

基于springboot财务管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

【C语言必知必会 | 第一篇】C语言入门,这一篇就够了

引言 C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。它在编程语言中具有举足轻重的地位。 此文为【C语言必知必会】系列第一篇&#xff0c;带你初步了解C语言&#xff0c;为之后的学习打下基础 文章目录 1️⃣发展历史2️⃣语言特点3️⃣语…

论文精读--GPT2

被BERT敲打了&#xff0c;但是仍然坚持解码器架构 Abstract Natural language processing tasks, such as question answering, machine translation, reading comprehension, and summarization, are typically approached with supervised learning on taskspecific dataset…

使用代理IP技术实现爬虫同步获取和保存

概述 在网络爬虫中&#xff0c;使用代理IP技术可以有效地提高爬取数据的效率和稳定性。本文将介绍如何在爬虫中同步获取和保存数据&#xff0c;并结合代理IP技术&#xff0c;以提高爬取效率。 正文 代理IP技术是一种常用的网络爬虫技术&#xff0c;通过代理服务器转发请求&a…

idea和jdk之间对应的版本(idea支持的jdk版本)

idea如果和jdk版本不对应&#xff0c;就会出现无法运行的情况&#xff0c;如下&#xff1a; 翻译&#xff1a;无法确定17的“tools.jar”库的路径&#xff08;C:\Program Files\Java\jdk-17&#xff09; 原因&#xff1a;idea版本是2020.2&#xff0c;而jdk版本是17&#xff0…

动态规划-

关键词&#xff1a; 重叠子问题&#xff1b;每一个状态一定是由上一个状态推导出来(类似数列a^n f(a^n-1,a^n-2)) 步骤&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 题目&#…