位置: 编程技术 - 正文

获取Android设备挂载的所有存储器(android获取本机ip地址)

编辑:rootadmin

推荐整理分享获取Android设备挂载的所有存储器(android获取本机ip地址),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓怎么获取设备id,安卓怎么获取设备id,获取android设备唯一标识码,android获取手机的基本信息,android获取手机的基本信息,获取android_id,android10获取设备id,android获取设备信息,内容如对您有帮助,希望把文章链接给更多的朋友!

转自: StorageVolume[] getVolumeList() { if (mMountService == null) return new StorageVolume[0]; try { Parcelable[] list = mMountService.getVolumeList(); if (list == null) return new StorageVolume[0]; int length = list.length; StorageVolume[] result = new StorageVolume[length]; for (int i = 0; i < length; i++) { result[i] = (StorageVolume)list[i]; } return result; } catch (RemoteException e) { Log.e(TAG, "Failed to get volume list", e); return null; } }

通过反射,获取到Android设备所有存储器。publicclassStorageInfo{publicStringpath;publicStringstate;publicbooleanisRemoveable; publicStorageInfo(Stringpath){this.path=path;} publicbooleanisMounted(){return"mounted".equals(state);}} public static List<StorageInfo> listAvaliableStorage(Context context) { ArrayList<StorageInfo> storagges = new ArrayList<StorageInfo>(); StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); try { Class<?>[] paramClasses = {}; Method getVolumeList = StorageManager.class.getMethod("getVolumeList", paramClasses); getVolumeList.setAccessible(true); Object[] params = {}; Object[] invokes = (Object[]) getVolumeList.invoke(storageManager, params); if (invokes != null) { StorageInfo info = null; for (int i = 0; i < invokes.length; i++) { Object obj = invokes[i]; Method getPath = obj.getClass().getMethod("getPath", new Class[0]); String path = (String) getPath.invoke(obj, new Object[0]); info = new StorageInfo(path); File file = new File(info.path); if ((file.exists()) && (file.isDirectory()) && (file.canWrite())) { Method isRemovable = obj.getClass().getMethod("isRemovable", new Class[0]); String state = null; try { Method getVolumeState = StorageManager.class.getMethod("getVolumeState", String.class); state = (String) getVolumeState.invoke(storageManager, info.path); info.state = state; } catch (Exception e) { e.printStackTrace(); } if (info.isMounted()) { info.isRemoveable = ((Boolean) isRemovable.invoke(obj, new Object[0])).booleanValue(); storagges.add(info); } } } } } catch (NoSuchMethodException e1) { e1.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } storagges.trimToSize(); return storagges; }获取Android设备挂载的所有存储器(android获取本机ip地址)

如何判断存储器是内置存储还是外置存储呢?StorageVolume这个类中提供了一个isRemovable()接口,通过反射调用它就可以知道存储器是否可以移除。把可以移除的存储器认定为外置sdcard,不可移除的存储器认定为内置存储器。1MethodisRemovable=obj.getClass().getMethod("isRemovable",newClass[0]);

如何判断存储器的挂载状态呢?同上面一样,需要反射系统接口才可以获取到挂载状态。下面是代码片段MethodgetVolumeState=StorageManager.class.getMethod("getVolumeState",String.class); state=(String)getVolumeState.invoke(storageManager,info.path); info.state=state;

总结通过反射系统的StorageManager以及StorageVolume类提供的接口,就可以拿到Android设备挂载的所有存储器路径,以及存储器类型(内置存储还是外置存储),还有存储器的挂载状态等信息。

Android------Toast的使用 原本以为Toast只有那么一个简单的功能,就是Toast.makeText(context,text,duration).show();这样就完了。但是前几天发现一个问题就是不能在子线程中这么用,于是

android 事件处理机制之requestDisallowInterceptTouchEvent 原blog地址:

不用改变软输入法的位置 ?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=

标签: android获取本机ip地址

本文链接地址:https://www.jiuchutong.com/biancheng/382199.html 转载请保留说明!

上一篇:【正途】Android R.java文件丢失的问题(正途科技有限公司)

下一篇:Android---59---Toast的使用

  • 税控盘这个月没有反写会怎么样
  • 进项税额转出就是要多交税吗
  • 一个季度超过30万怎么做账
  • 个人所得税征收范围及税率
  • 增值税专用发票抵扣期限
  • 报废的机器设备怎么处理
  • 当月销售下月开票如何做账分录
  • 自来水开出发票的税率是多少
  • 开票个人账户的钱怎么查
  • 公司给离职员工多发工资怎么办
  • 房地产开发企业预缴增值税
  • 应付福利费直接计入未分配利润
  • 税率变化递延所得税资产如何调整
  • 向其他单位无偿提供服务的不需缴纳增值税
  • 车辆生产企业目录
  • 服务费可以不退吗
  • 企业转让专利技术需要交什么税
  • 小规模纳税人核定征收怎么报税
  • 建筑企业在工程所在地全额征收
  • 一个季度发票开超出9万
  • 税收分类编码选错了有事吗
  • 2017年消费税税率
  • 非流动资产基金是什么意思
  • 个人交汽车购置税流程
  • 外商投资的企业是外资企业吗
  • 农产品进项税抵扣计算例题
  • 软件公司客户经理一般月薪多少
  • 公司0申报怎么做账
  • win11透明任务栏怎么设置
  • linux中tomcat如何启动
  • 刚成立的公司老总叫什么
  • mac怎么设置默认程序
  • 草丛里的野花像
  • 推荐国内免费使用的电影
  • pytorch train()
  • SwinIR实战:详细记录SwinIR的训练过程
  • linux杀死程序
  • php基本语句
  • yii框架教程
  • ps怎么用魔棒选区
  • vue2 自定义 el-radio-button 的样式并设置默认值的方法
  • 生产企业支付的车间劳务外包费入账科目
  • 主营业务成本和生产成本的区别
  • 应收账款出售给银行账务处理
  • 提前开具发票怎么做账
  • kibana 教程
  • 异地工程税
  • 什么科目需要结转到本年利润
  • 其他收益在报表列示的项目是
  • 长期股权投资采用成本法核算的,应按被投资单位
  • mysql 自动断开
  • 用人单位垫付生育津贴垫付金额和垫付天数
  • 公司卖废品收入要交增值税
  • 防伪系统制作
  • 以公司名义开的口腔诊所法人和负责人是两个人么
  • 进料加工与来料加工
  • 主营业务收入包括哪些内容
  • 年末结转的会计核算过程
  • Linux下mysql 5.6.17 安装图文教程
  • 建立mysql
  • mysql主界面
  • 硬盘安装ubuntu18
  • ubuntu网页打开很慢
  • ubuntu20.4分区
  • zhudongfangyu.exe是什么进程,可以删除吗
  • microsoft/微软
  • win8.1操作界面
  • win8无法更新到win10
  • windows8怎么设置开机启动项
  • python模拟软件
  • JavaScript Array对象详解
  • node+express+ejs使用模版引擎做的一个示例demo
  • android-ListView(1)-listview概览
  • unity3d物体旋转
  • linux命令行怎么用
  • 推荐几个非常有趣的书
  • 在android
  • 安卓高德地图开启相机权限
  • js实现省份和市级联动
  • 股息税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设