位置: 编程技术 - 正文

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

  • 房地产销售土地属于什么收入
  • 金蝶软件可以实现一键报税吗
  • 核定征收的计算方法有哪些
  • 财务软件怎么结转本年利润
  • 研发费用可以计入哪个科目
  • 医院增值税免税性质代码是什么
  • 收到红字信息表不能直接开具
  • 将固定资产转给母公司属于债务重组吗
  • 成本少结转了怎么调回
  • 收入工程款后什么时候计提印花税
  • 学生勤工俭学收入交个人所得税吗
  • 收到供应商赔偿的违约金
  • 无运输工具承运业务按何税目缴纳增值税
  • 外资企业所得税税率25
  • 税审计入什么科目?
  • 想要避免虚开发票,你就要注意以下行为
  • 联营与参股公司的关系
  • 计提法定盈余公积转入利润分配
  • 购进增值税专用发票怎么填开
  • 准予抵扣的进项税额有哪些
  • 增值税发票系统升级版
  • 利润表里的其他业务利润怎么形成的
  • windows11家庭版本地策略组
  • 华为p20上市时间和价格
  • 购货优惠的会计科目
  • 汇算清缴后补缴企业所得税账务处理
  • 项目完工叫什么
  • 建筑行业总分包怎么算
  • 转让土地需要办什么手续
  • 政府会计制度固定资产折旧方法
  • 什么是非征期税未报
  • 绿化管理服务经营范围
  • javascript原生
  • 六自由度机器人简图
  • 城建税退回与不退税区别
  • 残保金怎么计算公式
  • unplugin-auto-import github
  • head命令中表示输出文件前5行的参数是
  • 代发工资一般收多少服务费
  • 普票3个点可以抵扣吗
  • 认证系统维护费怎么算
  • 合伙企业与公司一样具有高度的人合性
  • 财务中常有提到的问题
  • 启动mysql的语句
  • 礼物提前到会不会不好
  • 小微企业免征的增值税怎么做账
  • 外购产品对外捐赠的会计处理方法
  • 危废品处理费用会计处理
  • 社保下个月扣款
  • 物业管理单位收取的物业费征不征收增值税
  • 网银费用及回单怎么查
  • 买药费用应计入什么科目
  • 以前年度账务错误应该怎么处理的
  • 接到国外的电话是怎么回事
  • 在数据库中对数据表进行生成的是
  • win8磁盘占用率高怎么处理
  • win10添加闹钟
  • mac安装软件提示无法检查更新
  • win7安装cad2010
  • win8开始界面如何设置成win7
  • 学习英语
  • 批处理!!
  • 如何执行perl脚本
  • unity用visual
  • Unity NGUI添加事件监听(转摘)
  • php 时间差
  • 功能强大的英语
  • jquery 修改
  • unity3d导出工程文件
  • js获取鼠标坐标到浏览器底部
  • android界面设计规范
  • 查验发票真伪
  • 如何查询哈尔滨医院药品信息
  • 青年文明号创建目标
  • 日照公交305发车时间表
  • 税务系统党支部工作法
  • 广东省通用机打发票怎么开
  • 出口备案单证管理办法
  • 公寓限购是好事吗
  • 铁力杯四省冠军
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设