位置: 编程技术 - 正文

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

  • 税务师2022年考试成绩
  • 融资租赁业务如何高效拓展
  • 外资企业能投资国企么
  • 业务往来中接受礼品道德吗
  • 个体户的附加税表怎么填写
  • 收入用结转吗
  • 销售成本是负债吗
  • 总公司设立分公司的决定
  • 坏账损失的核算方法一般有两种
  • 销售农业产品的税率
  • 计提分红款体现在利润表中哪一个
  • 发放短期外汇贷款的意义
  • 公司代缴员工个税
  • 房地产企业暂估成本
  • 小微企业免税销售额怎么算
  • 公司走税,对公司有影响吗
  • 单位买酒报销如何做账
  • 盈余公积什么时候调整
  • 分公司给总公司管理费的会计分录
  • 定金转为货款金额需要特别约定吗?
  • 凭证上附单据多少张怎么看
  • 本年利润期末
  • 房地产开发资质查询
  • 什么叫毛利润和净利润
  • 微信聊天记录备份和恢复
  • 如何在pc桌面上添加文件
  • php初学实例教程
  • 购入的无形资产
  • php中几个常用的函数
  • 哪些货物出口不需要运输条件
  • 一般纳税人购买原材料会计分录
  • 买过来的土地可以确权吗
  • 微信小程序获取位置信息的权限在哪里修改位置
  • 出差补助需要发工资吗
  • 深度学习参数初始化(二)Kaiming初始化 含代码
  • php多线程编程
  • git web hook
  • 房产置换怎么做账务处理
  • phpcms怎么用
  • 发票第三联是什么颜色
  • 资产减值损失和资产减值准备
  • 销售货物免税
  • 凭样品销售
  • 民非企业银行利息计入其他收入,那增值税申报吗
  • 织梦怎么改文字
  • 企业低值易耗品的摊销方法有
  • 电子承兑汇票到期提示付款后多久到账
  • 企业增资相关知识点
  • 未达起征点怎么填
  • 一般纳税人转小规模纳税人的条件
  • 机动车发票红冲后重新开具
  • 收取的承包费交什么税
  • 政府补贴业务如何发放
  • 公司老板个人卡收支公司业务属于什么行为
  • 残疾人就业保障金怎么申报
  • 远期支票可以背书转让吗
  • 软件生产企业培训内容
  • 恢复mysql数据库
  • win10改win8.1
  • 电脑右下角windows设置在哪
  • win10教育版如何恢复出厂设置
  • mac小技巧
  • 苹果电脑怎么下魔兽争霸
  • Windows下查看PCI插槽链路
  • win8.1新建桌面
  • win7系统360浏览器书签
  • win7旗舰版u盘在电脑上读不出来
  • 阿J的cocos2d-x学习笔记-元素消消看(四)-可发展的空间及游戏开发中的问题
  • opengl sharder
  • 高级控件动态数据加载过程有哪些
  • opengl详解
  • nodejs cicd
  • Android spinner 的使用
  • linux shell脚本攻略(第3版)
  • JavaScript电子时钟倒计时
  • jquery入门
  • 发票扫码抽奖用什么软件
  • 小规模开了红字发票申报表怎么填
  • 进口天然气定价机制
  • 深圳房东有钱吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设