位置: 编程技术 - 正文

获取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的使用

  • 自己的医院
  • 外贸企业的出口收入免征其地方水利建设基金
  • 银行存款日记账电子表格模板
  • 销售部门快递费用怎么算
  • 核定征收生产经营所得税率
  • 房屋租赁后转租合法吗
  • 房地产税和物业税
  • 筹建期发生的费用
  • 工程施工合同如何核算收入成本?
  • 房地产企业汇算清缴报表
  • 工资为负数需要给公司吗
  • 公司账上收到退回的多交的附加税怎么做
  • 房地产企业开发资质等级
  • 开模具公司要什么设备
  • 已经开了的发票可以打销货清单吗
  • 免抵退系统应调整免抵退额吗?
  • 个人所得税征收范围
  • Windows无法启动服务
  • 处置固定资产简易计税怎么申报
  • 冲减预付账款是什么意思
  • 企业所得税申报流程
  • 对某公司的了解
  • 自产自销的茶叶要交增值税吗
  • 财务软件上线需注意什么
  • 简介linux系统中的10个常用命令及功能
  • 进项税留抵期限
  • 公司交会费有什么用
  • PHP:mb_convert_kana()的用法_mbstring函数
  • 其他应收款年末余额较大
  • 涉税专业服务机构是什么
  • 显示器显示频率设置
  • 企业接受外单位投入的材料一批,应编制()
  • 世界上最早的计算机是
  • 企业进行投资的类型有哪些
  • 什么情况下增长率是0
  • 外商投资企业 外资企业
  • php时间戳相减
  • php 进程通信
  • js数组常用方法有哪几种
  • 固定资产加速折旧最新税收政策2023
  • html爱心代码简单
  • 机器学习--使用朴素贝叶斯进行垃圾邮件分类
  • web后端开发是什么意思
  • yolo s
  • python编程从入门到精通第三版
  • Huggingface之transformers零基础使用指南
  • 小微企业所得额如何计算
  • 帝国cms自动更新
  • 缴纳文化事业建设费
  • 工厂道路设计规范
  • 母子公司关联交易规定
  • 土地摊销计入成本还是费用
  • 个人所得税的征收
  • 资产负债表里的固定资产是原值还是净值
  • 固定资产的修理费属于什么费用
  • 签订三方协议是办理实时扣税的前提,这里三方是指
  • 已认证的增值税专用发票退票
  • 预缴增值税可以抵扣销项税吗
  • 从外面买回来的鸡蛋能孵出小鸡吗
  • 支出费用的区别
  • 待摊费用在新会计准则里面有吗
  • 小微企业建账
  • 物业管理企业应按职工工资总额的1.5%计提工会经费
  • sqlserver
  • linux几种安装方式
  • 如何延迟windows更新
  • SwiftBTN.exe - SwiftBTN是什么进程 有啥作用
  • 新手如何入门
  • win8.1备份系统还原
  • unity outline性能
  • javascript数据结构与算法项目计算找零
  • [置顶]游戏名 TentacleLocker
  • vue中使用jsx
  • Tcp/ip协议族
  • shell脚本判断两个数大小
  • jquery ztree实现树的搜索功能
  • 安卓 centos
  • 税务清单模板
  • 马来西亚到中国机票多少钱
  • 铜陵职业技术学院专业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设