位置: 编程技术 - 正文

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

  • 发票丢失第一联盖章能用么
  • 应交税费转营业外支出
  • 城市维护建设税是什么意思
  • 每月企业所得税申报截止到几号
  • 居民企业参股外国企业信息报告表怎么删除
  • 房地产收入成本确认
  • 合并后少数股东权益的处理
  • 发票能加盖公章吗
  • 肉联厂销售模式
  • 在建工程待摊支出例题
  • 营改增医院增值税
  • 有留抵税额要考虑税负吗
  • 委托加工物资加工完毕验收入库后作为
  • 商贸公司结转成本应该贴什么凭证
  • 计提资产减值准备是利好还是利空?
  • 已抵扣进项税额的购进货物或者应税劳务
  • 个人装卸费如何开票
  • 五证合一后地税编码怎么查
  • 利息发票能开专票吗
  • 小规模季报营业税怎么算
  • 家电折旧费法律依据
  • 事业单位没有税号 选个人可以吗
  • 土地增值税地价扣除
  • 电费返还怎么查询
  • 浙江印花税税率
  • 增值税退税金额怎么算
  • 哪些企业可以享受加计扣除
  • 没有原始凭证可以审计吗
  • 苹果电脑隐藏软件功能怎么开启
  • 关于汇算清缴的问题
  • win10如何设置开机声音
  • isignup.exe是什么进程 isignup进程查询
  • PHP:mb_decode_numericentity()的用法_mbstring函数
  • phpstorm怎么用
  • 货到付款怎么做账
  • zen+框架
  • php生成随机字符串
  • es6 promise await
  • linux mput命令
  • 工会经费怎么上缴
  • 房租费可以一次性摊销吗
  • 对公账户怎么打印
  • 公司注销剩余的发票怎么作废
  • 暂估入库成本处理
  • db management
  • 综合所得年度自行申报怎么操作
  • 车辆维修费发票图片
  • 小规模收入账务
  • sql2000管理工具
  • 利润减负债
  • 人力资源公司劳务外包
  • 现金核算如何进行账务处理
  • 投资性房地产在资产负债表哪个科目
  • 自产货物赠送客户账务处理
  • 粗纤维测定仪价格
  • 内部交易内部交易收益造成的当期折旧的多计额
  • 关于文化事业建设费的说法错误的是
  • 银行汇票的适用主体
  • windows隐藏文件名
  • centos vsftpd配置
  • windows10安装教程u盘安装
  • linux安装openssh-server
  • freebsd ports安装
  • win8系统无法开机如何备份数据
  • -mtime +3详解 linux
  • windows7使用
  • win8一直在开始界面
  • win7系统防火墙无法关闭
  • win10系统如何去除记住密码
  • yum update upgrade
  • win10系统可以不用杀毒软件吗
  • android环境搭建教程
  • 浅谈会计诚信与职业道德论文
  • vue-cli作用
  • unity一运行就停止工作
  • 用js实现一个复杂对象深拷贝的算法
  • js判断checkbox是否被选中
  • js如何定义类
  • 税务局着装规定文件
  • 遵从与尊从
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设