Android通过反射动态挂载/卸载U盘

代码中动态控制U盘挂载和卸载。(仅适用于系统应用)

反射方式实现。

需要添加android:sharedUserId="android.uid.system" 到AndroidManifest.xml

  public static void mountDisk() {Log.v(TAG, "mountDisk begin");try {Class<?> clz = Class.forName("android.os.ServiceManager");Method getService = clz.getMethod("getService", String.class);Object powerService = getService.invoke(null, "mount");Class<?> cStub = Class.forName("android.os.storage.IStorageManager$Stub");Method asInterface = cStub.getMethod("asInterface", IBinder.class);Object IPowerManager = asInterface.invoke(null, powerService);Method shutDown = IPowerManager.getClass().getMethod("mount", String.class);shutDown.invoke(IPowerManager, "public:8,1");} catch (Exception e) {e.printStackTrace();}Log.v(TAG, "mountDisk end");}public static void unmountDisk() {Log.v(TAG, "unmountDisk begin");try {Class<?> clz = Class.forName("android.os.ServiceManager");Method getService = clz.getMethod("getService", String.class);Object powerService = getService.invoke(null, "mount");Class<?> cStub = Class.forName("android.os.storage.IStorageManager$Stub");Method asInterface = cStub.getMethod("asInterface", IBinder.class);Object IPowerManager = asInterface.invoke(null, powerService);Method shutDown = IPowerManager.getClass().getMethod("unmount", String.class);shutDown.invoke(IPowerManager, "public:8,1");} catch (Exception e) {e.printStackTrace();}Log.v(TAG, "unmountDisk end");}public static boolean isUsbDiskMounted() {String mount = SystemPropertiesUtil.getProperty("vold.usbdisk.state", "");return "mounted".equals(mount);}

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

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

相关文章

R语言【mclust】——Mclust():基于模型的聚类

Package mclust version 6.0.1 Description 基于参数化有限高斯混合模型的模型聚类。采用基于层次模型的聚类初始化EM算法对模型进行估计。然后根据BIC选择最优模型。 Usage Mclust(data, G = NULL, modelNames = NULL, prior = NULL, control = emControl(), initialization…

如何多环境切换?如何在微服务配置多环境?

问题本质: nacos配置中心的配置是如何被项目读取到的&#xff1f;(nacos的配置中心和项目是如何联系的&#xff1f;) 注意&#xff1a;nacos有配置管理和服务管理&#xff0c;别弄混。自动注册的是服务管理&#xff01;&#xff01;&#xff01; 1. 如何注册到nacos服务管理中心…

深度学习-回顾CNN经典网络LetNet

深度学习-回顾CNN经典网络LetNet 深度学习中&#xff0c;从LetNet到当前最火的GPT所用的Transformer&#xff0c;经典网络引领一波又一波的技术革命&#xff0c;它们把AI技术不断推向高潮。 用pytorch构建CNN经典网络模型LetNet&#xff0c;还可用数据进行训练模型&#xff0…

Java基础知识--12

目录 一、final的使用 二、接口 1.概述 2.与抽象类的异同 3.具体使用 4.内部类 成员内部类 静态内部类 局部内部类 一、final的使用 描述&#xff1a;final是最终的&#xff0c;不可改变的含义&#xff1b;可以修饰在类&#xff0c;方法&#xff0c;变量中 修饰类&…

蓝桥杯备战刷题one(自用)

1.被污染的支票 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; int main() {int n;cin>>n;vector<int>L;map<int,int>mp;bool ok0;int num;for(int i1;i<n;i){cin>>nu…

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…

QT调用批处理命令及外部exe方法

一.QT调用外部exe 使用QT中的QProcess方法&#xff1a; #include <QProcess> QProcess process; QString cmd "test.exe"; //放在主程序exe同级目录下 process.start(cmd); // 启动可执行程序方法一 //process.startDetached(cmd); // 启动可执行程序方法…

Unity将4个纹理图拼接成1个纹理

需要的效果 最终实现的效果大概如下: 4个贴图上去 这里随便放一个切分的图。 Shader代码如下 直接上代码: // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)// Unlit shader. Simplest possible textured shad…

UE5 C++ Widget练习 Button 和 ProgressBar创建血条

一. 1.C创建一个继承Widget类的子类&#xff0c; 命名为MyUserWidget 2.加上Button 和 UserWidget的头文件 #include "CoreMinimal.h" #include "Components/Button.h" #include "Blueprint/UserWidget.h" #include "MyUserWidget.genera…

基于SVM的功率识别,基于支持向量机的功率识别,基于SVM的工况识别,svm工具箱详解

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接:基于SVM的功率识别,基于支持向量机的功率识别资源-CSDN文库 https://download.csdn.net/download/abc991835105/88862793 SVM应用实例, 基于SVM的功…

「连载」边缘计算(二十一)02-26:边缘部分源码(源码分析篇)

&#xff08;接上篇&#xff09; DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin struct&#xff08;dt : DeviceTwin{}&#xff09;往下剖析&#xff0c;进入DeviceTwin struct的定义&#xff0c;…

编程笔记 Golang基础 033 反射的类型与种类

编程笔记 Golang基础 033 反射的类型与种类 一、反射的类型和种类二、切片与反射三、集合与反射四、结构体与反射五、指针与反射六、函数与反射小结 反射机制的作用范围涵盖了几乎所有的类型和值的操作层面&#xff0c;它极大地增强了Go语言在运行时对于自身类型系统的探索和操…

Python实现自动检测设备连通性并发送告警到企业微信

背景&#xff1a;门禁机器使用的WiFi连接&#xff0c;因为某些原因会不定期自动断开连接&#xff0c;需要人工及时干预&#xff0c;以免影响门禁数据同步&#xff0c;故写此脚本&#xff0c;定时检测门禁网络联通性。 #首次使用要安装tcping模块 pip install tcpingfrom tcpin…

Pandas读取两个excel并join

Pandas 的 join就是merge&#xff0c;代码如下 import pandas as pd #读取两张表 dfpd.read_excel(“左表”) #读取右表的第三个sheet中的数据 df2pd.read_excel(“右表”,sheet_name“Sheet3”) #以左表为主表&#xff0c;左连接 outpd.merge(df ,df2 ,on‘query’ ,how‘lef…

【学习笔记】Serdes中的高速接口设计

参考文献&#xff1a; 一、绪论 1.1 背景 “串行替代并行”&#xff1a; 串行传输使用差分信号传输以传输更长距离&#xff1b; 并行传输因串扰无法长距离传输&#xff1b;并行线路对信号偏斜量的要求&#xff0c;限制了最大的传输速率。 SerDesSerializer Deserializer S…

欧拉函数性质和快速幂算法及python实现

目录 欧拉函数 快速幂算法 快速模幂算法 欧拉函数 两个不同的正整数a,b&#xff0c;若gcd(a,b)1,则a和b互质&#xff0c;1与任何正整数都互质 欧拉函数的意义 φ(n) 表示小于或等于正整数n的所有正整数中与n互质的数的个数 如φ(32) 16&#xff0c;即小于32的数中有16个…

Prompt 编程的优化技巧

一、为什么要优化 一&#xff09;上下文限制 目前 GPT-3.5 以及 GPT-4最大支持 16K 上下文&#xff0c;比如你输入超过 16k 的长文本&#xff0c;ChatGPT 会提示文本过大&#xff0c;为了避免 GPT 无法回复&#xff0c;需要限制 上下文在16k 以内 上下文对于 GPT 来说是非常重…

STL常用容器(vector容器)---C++

STL常用容器目录 2.vector容器2.1 vector基本概念2.2 vector构造函数2.3 vector赋值操作2.4 vector容量和大小2.5 vector插入和删除2.6 vector数据存取2.7 vector互换容器2.7.1 vector互换容器收缩内存空间 2.8 vector预留空间 2.vector容器 2.1 vector基本概念 功能&#xf…

自然语言处理(NLP)—— 神经网络自然语言处理(2)实际应用

本篇文章的第一部分是关于探索词嵌入&#xff08;word embedding&#xff09;向量空间。词嵌入是一种语言模型和文本表示技术&#xff0c;其中单词或短语从词汇表被映射到向量的高维空间中。通过这种方式&#xff0c;可以通过计算向量之间的距离来捕捉单词之间的语义关系。 1.…

AttributeError: module ‘tensorflow‘ has no attribute ‘__version__‘

可能的原因是环境中安装了与标准TensorFlow包不同的包&#xff0c;或者可能是TensorFlow没有正确安装。解决方法如下&#xff0c;亲测有效 pip install --upgrade --force-reinstall tensorflow–force-reinstall&#xff1a;通常&#xff0c;如果已经安装了请求的包的最新版本…