位置: 编程技术 - 正文

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

  • 回退税款所属期后怎么返回
  • 土地增值税税率2023
  • 完工产品成本计入什么科目
  • 劳务报酬需要补税吗
  • 自建厂房的进项税额能一次性抵扣吗
  • 减免所得税优惠明细表怎么填
  • 结转本月发生的费用
  • 软件企业购进软件服务怎么入账
  • 机动车换车
  • 幼儿园收取生活费通知
  • 关税的增值税计算公式
  • 地产佣金收入属什么收入
  • 材料盘亏税前扣除怎么算
  • 外经证是先开票还是先预缴税款
  • 建安企业劳务成本怎么入账
  • 公司缴纳社保要多久
  • 代销商品手续费计入
  • 采购均价怎么计算
  • 通用申报表工会经费可以不申报吗
  • 工会职工活动支出标准
  • 预付账款为负数能转为应付账款吗
  • win11文件类型怎么改
  • 缴纳税款滞纳金计算方式
  • 美容美发属于什么品类
  • 无序树有几种
  • php string函数
  • 收到供应商现金回扣
  • 转让专利权的会计处理结果
  • 公司报销之后钱发到哪
  • 厄勒布鲁赛程500
  • 怎么缴销空白发票
  • thinkphp跨域解决方案
  • cobit框架
  • 销售退换货的账务处理
  • phpcms邀请注册送积分
  • pycharm操作界面
  • 什么是进项税转出成本
  • 帝国cms使用手册
  • c语言中使用指针的好处
  • 向股东免息借款怎么做账
  • 企业销售商品满足收入确认条件时,应当
  • 暂估入账的固定资产,待办理竣工决算手续后
  • 理财产品的分类
  • 一般纳税人增值税减免政策2023
  • 固定资产后续支出一律计入固定资产成本
  • 公司过账的款项怎么入账
  • 教育费附加减免性质代码
  • 阶段性减免社保费政策期限延长
  • 一般纳税人增值税申报表怎么填写
  • 未付货款尾款会计分录
  • 减少实收资本会影响资产吗
  • 研发支出放在报表哪里
  • 土地使用税为什么要交
  • 上月暂估本月怎么冲销
  • 贸易中的发票抵押和发票融资
  • 远期支票最长期限
  • 外派员工的薪酬构成有哪些项目
  • 车票抵扣进项税怎么计算
  • 非金融企业之间借款账务处理
  • 便签windows
  • fix it club
  • centos怎么样
  • windows崩溃后怎么修复
  • win7笔记本电脑怎么重装系统教程
  • linuxcoll
  • windows7默认网关不可用
  • html的基本语法规则
  • 表单javascript
  • anaconda使用指南
  • 谈谈网页设计中的内容
  • jquery序列化json
  • 有道词典下载安装
  • js需要学到什么程度
  • android 开源框架
  • jquery增加
  • 代码实现死锁
  • 企业如何在网上申请缴税三方协议
  • 深圳国税电子税务局入口
  • 四川社保缴费后多久生效
  • 德国对外投资法律劣势有哪些方面
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设