位置: 编程技术 - 正文

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

  • 未按期纳税申报怎么处理
  • 滴滴电子普通发票怎么抵扣
  • 增值税报表申报流程
  • 申报无票收入次月红冲有没有风险
  • 公益组织收到捐赠款计入什么科目
  • 机械租赁属于什么分类
  • 外购商品捐赠进哪个科目
  • 小企业今年怎么过
  • 现金日记账本月合计的红线画法
  • 房地产企业土地使用权入什么科目
  • 劳务费代扣代缴后还需要开发票吗
  • 企业代扣职工个人缴纳的五险一金
  • 未达账项怎么做会计分录
  • 收到外币计算税款的汇率是怎么算的?
  • 企业从政府取得的经济资源,如果与企业销售商品
  • 小微企业分公司 企业所得税优惠
  • 发票对方作废了,客户还可以认证么
  • 升级后的百旺开票系统如何操作
  • 2018年工会经费返还比例
  • 消费税的征收范围
  • 取得甲供材料按简易征收发票能抵扣吗
  • 个人承担的社保费用算在员工工资里吗?
  • 收到上级补助收入支出时财务会计怎么记账
  • 委托加工物资合并报表
  • 资金使用计划表怎么写
  • 1697508991
  • 物流公司运费账务处理
  • win10要更新系统
  • 怎么光驱重装系统
  • php开发的优点与不足
  • Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
  • php socket_read
  • php设计模型
  • 其他业务收入怎么申报增值税
  • 房产开发企业涉及税种
  • 房产开发企业涉及税种
  • 房地产企业预缴增值税如何申报
  • post请求params
  • thinkphp怎么运行
  • vue.js过滤器
  • 利息收入的会计科目怎么做
  • 财政零余额账户是什么
  • 一件代发退货如何处理
  • 财产保险费用会增加吗
  • sql执行顺序优先级
  • mongodb配置文件详解
  • sql server添加语句
  • sql2005怎么执行语句
  • 当年发生亏损会影响所有者权益吗
  • 公司不注销会坐牢吗
  • 房地产公司房屋租赁管理办法
  • 代扣代缴预提所得税10%是什么意思
  • 中标服务费可以税前扣除吗
  • 电子退库纳税人是什么意思
  • 仓库用托盘怎么入账
  • 管理费用和财务费用期末有无余额
  • 金税盘清卡怎么弄
  • 房租押金不退如何处理
  • 小规模商贸公司没有进项票怎么办
  • 公司抽奖的成本怎么算
  • 个税抵扣项目是什么
  • 财务票子怎么粘
  • 明细账的作用
  • sql server 2000安装好打开不显示名称和服务原因
  • windows7怎么说
  • mac截图快捷键设置
  • gcuservice.exe
  • windows8如何分盘
  • [置顶] clauvio,Twitter小老鼠
  • 定时删除一个文件怎么删
  • Cocos2d-JS中JavaScript继承
  • 围绕摄像机旋转怎么设置
  • android系统分区理解及分区目录细解
  • unity3d inspector
  • Unity MeshBaker 合并网格和材质
  • 猫猫的娱乐
  • jq 判断元素是否存在
  • 山东省税务局网上办税服务厅
  • 北京摇号摇中了能过户吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设