位置: 编程技术 - 正文

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

  • 增值税普通发票几个点
  • 出纳与会计现金对不上
  • 金税盘减免账务处理
  • 职工罚款收入计入什么科目
  • 年报财务报表在哪里申报
  • 税率调整后之前签的合同用变更吗
  • 境外保险是什么意思
  • 广告媒体类的企业怎么核算成本?
  • 支付证明单打印版
  • 微信交电费怎么退款
  • 个人所得税反推器
  • 普通发票开票步骤
  • 没有核定税种怎么报税
  • 红字发票开具只能针对一份发票 不可以只冲红其中一部分吗?
  • 建筑企业能申请小微企业吗
  • 金税盘密码忘记了打客服有用吗?
  • 企业上月份销售收入在本月份发生销售折让时
  • 过路费企业所得税汇算清缴计入什么科目?
  • 培训学校的收入
  • 企业所得表怎么填写
  • 企业外籍个人子女教育补贴
  • 公司注销时债权债务怎么处理
  • 所有者提取的借贷方向
  • 公司付股东退股怎么处理
  • 短期借款应付利息列报
  • 为什么说人与人的悲欢不相通
  • 怎么给分区
  • 完税凭证遗失后还能用吗
  • 计提固定资产折旧怎么做会计科目
  • laravel debug rce
  • 缴纳租房押金会被骗吗
  • phpstudy配置
  • 重置java
  • vue.js如何安装
  • php原生导出excel表单元格格式
  • php考试时间倒计时
  • 稳岗补贴什么时候到账
  • 联营企业和合营企业是什么意思
  • 分公司二季度安全生产分析会内容
  • 个税的本期收入是什么意思
  • 预收账款转收入可以调以前年度吗
  • java printing
  • webservice api接口
  • java数组合并变字符串
  • 瀑布流样式
  • 报关单填制相关规范相关文件
  • 教育培训学校是什么意思
  • 银行日记账期初余额写哪儿
  • 百旺税控盘会自动清卡吗
  • 联营企业与合营企业纳入合并吗
  • 销售补偿法
  • 冲减当期利润
  • 收回发票会计分录
  • 接待客人后的感受和过程
  • 子公司与母公司承担连带责任
  • 支付水电费会计等式
  • 一般纳税人农业企业免企业所得吗
  • 支付借款利息需要交税吗
  • 小规模纳税人发票可以抵扣吗
  • 从别的公司买承兑汇票
  • service login
  • Win7 64位系统XP模式失效的原因及解决方法
  • windows tasks文件夹
  • winxp系统用户不见了
  • win10系统怎么修改字体大小
  • linux关机后机器还亮着
  • linux oracle 01034
  • 安装centos7安装位置没有磁盘
  • linux ping命令的用法
  • python开发软件教程
  • javascript src
  • jquery查找当前元素的父元素
  • 一个方便的世界作文
  • 税务风险科是干什么的
  • 个税更正申报如何导出大厅申报表
  • 浙江国税局电话客服热线
  • 税务局全年绩效分析报告
  • 电子税务局密码能随便告诉别人吗
  • 外地人在上海奉贤区买房需要什么条件
  • 公司财务专用章的用途
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设