Android 10.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言

 在10.0的系统开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备
的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现

2.mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现的核心类

frameworks\base\media\java\android\mtp\MtpDatabase.java

3.mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现的核心功能分析和实现

MtpService负责启动MtpServer和加载存储设备的信息到数据库。MtpServer负责通过jni接口去启动/停止C++层中MtpServer以及处理Storage的添加和删除
而具体处理mtp格式文件扫描的就是在MtpDatabase.java中处理的,
当手机连上usb线后,UsbReceiver会收到来自系统的USB_STATE广播事件。接着它需要从UsbManager中查询USB的链接状态,MTP的设置信息和PTP的设置信息。
当用户设置为使用MTP模式时,UsbReceiver将通过startService函数启动MtpService。
MtpService启动,在其onStartCommand中将创建MtpDatabase对象和MtpServer对象。
UsbReceiver同时通过insert一条特殊uri(值为“content://media/none/mtp_connected”)的方式&

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

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

相关文章

【计算机视觉】【图像处理综合应用】路沿检测

实验内容:针对给定的视频,利用图像处理基本方法实现道路路沿的检测; 提示:可利用Hough变换进行线检测,融合路沿的结构信息实现路沿边界定位(图中红色的点位置)。 处理视频文件 处理视频文件的主…

springboot函数式web

1.通常是路由(请求路径)业务 2.函数式web:路由和业务分离 一个configure类 配置bean 路由等 实现业务逻辑 这样实现了业务和路由的分离

Spring MVC程序开发

所谓的Spring MVC程序开发,其实也是一个Spring Boot项目。 MVC是Model View Controller的缩写,它是软件工程中的一种软件架构模式,它把软件系统分为模型,视图,控制器三个部分。 项目使用什么技术实现的?&a…

【nowcoder】BM3 链表中的节点每k个一组翻转

题目: 题目分析: 题目解析转载: 代码实现: package BMP3;import java.util.List;class ListNode {int val;ListNode next null;public ListNode(int val) {this.val val;} } public class BM3 {/*** 代码中的类名、方法名、参…

一般将来时

一般将来时 概念 表示将要发生的动作或打算、计划准备做某事 时间 tomorrow 明天 the day after tomorrow 后天 next week 下周 next weekend 下周末 next month 下个月 next year 明年 ...句子结构 主语 be(am/is/are)going to do … 计划,…

B树你需要了解一下

介绍B树的度数主要特点应用场景时间复杂度代码示例拓展 介绍 B树(B-tree)是一种自平衡的树,能够保持数据有序,常被用于数据库和文件系统的实现。 B树可以看作是一般化的二叉查找树,它允许拥有多于2个子节点。与自平衡…

2023.11.25 关于 MyBatis 的配置与使用

目录 引言 MyBatis 介绍 掌握两个点 在框架中的定位 创建数据库 配置 MyBatis 引入依赖 配置文件 创建实体类 构建 Mapper 层代码实现 添加 mapper 接口 添加 UserMapper.xml 实现 Service 层 实现 Controller 层 最终测验 阅读下面文章之前建议了解并创建…

树状数组专题

折叠 区间修改,区间查询,这一类题通常都可以使用线段树解决,但对于此题,树状数组同样可以,而且常数较小,代码简单。 思路: 考虑使用树状数组去维护差分数组,即对于 a i a_i ai​,我们…

使用qemu调试arm内核

参考书籍《奔跑吧Linux内核》–笨叔 下载Linux-5.0源码 https://benshushu.coding.net/public/runninglinuxkernel_5.0/runninglinuxkernel_5.0/git/files或者直接git源码 git clone https://e.coding.net/benshushu/runninglinuxkernel_5.0/runninglinuxkernel_5.0.git安装必…

【React】Memo

组件重新渲染时缓存计算的结果。 实例:count1计算斐波那契数列,count2和count1可以触发数值变化。使用memo可以使只有在count1变化时触发斐波那契数列计算函数,而count2变化时不触发斐波那契数列计算函数。 import { useMemo } from "r…

SpringCloud微服务网关Gateway:gateway基本实现、断言工厂、过滤器工厂、浏览器同源策略、跨域问题解决方案

Gateway网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0和Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API路由管理方式 为什么…

【面试题】介绍一下类加载过程,什么是双亲委派模型

背景 java 文件在运行之前,必须经过编译和类加载两个过程: 编译过程:把 .java 文件 编译成 .class 文件类加载过程:把 .class 文件加载到 JVM 内存里,加载完成后就会得到一个 class 对象,我们就可以使用 n…

Vue快速实践总结 · 上篇

文章目录 模板语法数据绑定事件处理计算属性监视属性(监听器)条件渲染列表渲染数据监视原理内置指令总结生命周期组件化编程组件使用步骤组件的嵌套this指向单文件组件ref、props 脚手架(Vue CLI)render函数 参考自己的Vue专栏以及Vue官方文档 模板语法 …

Java PriorityQueue

一般情况下, 我们使用队列是为了能够建造队列的先进先出 (First-In-First-Out) 模式的, 达到一种资源的公平分配, 先到达的任务 (元素) 先处理, 但有时需要在队列中基于优先级处理对象。 存入队列中的任务 (元素) 具有优先级, 需要根据优先级修复里面的数据。而在 JDK 1.5 引入…

Java 泛型知识总结

1、基础知识 泛型是 JDK5 引入的参数化类型特性,所谓参数化类型就是把类型当成参数一样传递,它使得一个类型在定义类、接口和方法时成为一个参数,类似于方法声明中的形式参数,不同之处在于形式参数的输入是值,而类型形…

微机原理_5

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 8086微处理器CLK引脚输入时钟信号是由(提供。 A. 8284 B. 8288 C.8287 D. 8289 2.下面4个寄存器中,不能作为间接寻址的寄存器是(…

Java + openCV更换证件照背景色

最近在小红书上看到很多更换证件照背景色的需求,联想到以前自己也更换过证件照背景色而且还是付费的,碰巧最近在看一本书《JavaOpenCV高效入门》,于是查找资料,找到了通过技术解决这个需求的办法。 先看效果图(图片来自…

62 权限提升-烂土豆dll劫持引号路径服务权限

目录 演示案例:Win2012-烂士豆配合令牌窃取提权-Web权限Win2012-DLL劫持提权应用配合MSF-Web权限Win2012-不安全的服务权限配合MSF-本地权限Win2012-不带引号服务路径配合MSF-Web,本地权限补充说明: dll劫持提权及AlwaysInstallElevated等说明关于Windows相关知识点…

yo!这里是异常相关介绍

目录 前言 异常的概念 异常的抛出与捕获 捕获过程 重新抛出 规范 异常体系 自定义 标准库 异常的优缺点 后记 前言 对于程序运行时发生的错误,比如内存错误、除0错误等类型,你会如何处理?是使用assert终止程序或是使用exit返回错误…

Linux系统---僵尸进程、孤儿进程

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 键盘敲烂,年薪百万! 有了上一篇博客的学习,我们已经简单了解了进程的基础知识,今天我们再来学习两个特殊的进程,僵尸进程和孤儿进程。 …