位置: 编程技术 - 正文

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

  • 每年税务师考试几次
  • 代收代缴消费税会计分录
  • 开的劳务费怎么做账
  • 盈余公积计提比例必须是10%么
  • 采购材料入库会计分录怎么写的
  • 企业所得税年报怎么查询
  • 个体户开电子发票需要交税吗
  • 图书计入什么费用
  • 民办幼儿园的税收是多少
  • 签章是签字还是盖章z还是手印
  • 收到货款开的增值税发票怎么写分录
  • 营改增后哪些费用可以抵扣
  • 财务人员最重要的三点
  • 个税申报没交会收滞纳金吗
  • 防洪费2019年税率
  • 未开票增值税怎么申报
  • 税务局退的教育费附加怎么做账
  • 小企业 企业所得税
  • 调整成本调整单分录
  • 固定资产处理收入计入什么科目
  • 以前的员工怎么交社保
  • 培训费没有发票怎么办
  • windows11结束任务快捷键
  • 办妥托收手续会计分录
  • 设计费要计入固定费用吗
  • php压缩包
  • php提高性能
  • 电脑出现一堆英文无法开机
  • Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
  • 网络不通怎么办苹果手机
  • sbsetup.exe - sbsetup是什么进程 有什么用
  • pqtray.exe - pqtray 是什么进程 有什么用
  • 关于出售使用过的车辆
  • 支付押金无法收取怎么办
  • 小规模纳税人销售使用过的固定资产
  • 办置业公司需要哪些材料
  • 企业缴纳职工社保政策
  • Vue3 中 createWebHistory 和 createWebHashHistory 的区别
  • 发放职工薪酬账务怎么做
  • 新星计划会限流吗
  • 数据安全数据目录
  • 若依框架用到的技术
  • php经典面试题及答案
  • php调用微信扫描二维码
  • 增值税报销是什么意思
  • 土地增值税扣除率怎样计算
  • python socket连接后发送数据被强行终止
  • 研发企业税率是多少
  • 装卸搬运的设备有哪些
  • ibm db2认证
  • 税控盘服务费小规模可以抵扣吗
  • 日本发票国内能用吗
  • 仓库发货打包员工作内容
  • 预缴增值税可以抵扣销项税吗
  • 不动产租赁行业代码
  • 员工话费实报实销分录
  • 在产品占用资金属于资产还是负债
  • 车贷管理费合理吗
  • 结转完工入库产品成本
  • 政府预算年度
  • 其他债权投资发生减值会影响所有者权益总额吗
  • 单价合同如何计算印花税
  • 银行对公账户维护费申请表模板
  • 建账基本要求
  • 如何防止mysql数据库攻击
  • mysql优化sql有哪些
  • win8电脑触摸屏没反应怎么办
  • 如何解除系统默认
  • msmpeng.exe是什么进程
  • centos 安装chia
  • linux bfs
  • jquery中操作dom节点的方法
  • 非法文件名是什么
  • shell中setenv
  • jquery 列表实现
  • vs开发unity教程
  • 安卓 旋转屏幕
  • 网上跨区预缴
  • 纳税信用评级b是多少分
  • 2021沈阳车船税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设