位置: 编程技术 - 正文

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

  • 餐饮娱乐服务费进项税不能从销项税额抵扣
  • 月末进项税大于销项税怎么结转
  • 以前年度损益调整在借方是什么意思
  • 办公楼租金如何定价
  • 基本户和一般户的用途
  • 小微企业所得税税率2.5% 10% 25%
  • 税控盘锁死日期查询
  • 软件公司企业成本预测
  • 利润表盈利结构分析
  • 建筑企业施工管理人员
  • 增值税税率如何计算
  • 提供劳务收取现金会计分录
  • 固定资产的资本化后续支出
  • 当月预交增值税时所属期选了上期怎么办
  • 船舶吨税范围
  • 公司长期应付账款怎么算
  • 建筑工程增值税税率是9还是11
  • 物业管理费属于应付账款吗
  • 房租发票税点是几个点
  • 事业单位购买固定资产如何记账
  • 外地项目的预交税款没交怎么办
  • 工资发错了,多发了怎么办
  • 商场补贴申请怎么写
  • 企业所得税以前年度所得调整
  • 企业贷款的利息都是固定的吗
  • 经营费用包括哪些科目明细
  • 内存条松动导致黑屏
  • 产品入库的业务流程
  • php中数组的常用函数及用法
  • 冲销上月多记收入
  • 印花税申报后怎么缴费
  • PHP:Memcached::replaceByKey()的用法_Memcached类
  • 内部员工租房租金合法吗
  • 股东退股怎么分钱
  • fastadmin 插件开发
  • 武侯祠红墙在哪个门
  • 解决方案啥意思
  • 非正常损失的存货进项税额转出
  • 承兑汇票到期超过10天怎么办
  • jquery和php
  • 差额征税收到雇主责任险进项发票能抵扣吗
  • vue中过滤器有什么作用及详解
  • php背景图片代码
  • 【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)
  • [paper] lift,splat,shooting 论文浅析
  • php如何使用
  • 出差补贴应该怎么入账
  • 帝国cms怎么用
  • 应交税费中应交企业所得税为负数怎么调报表
  • 所得税申报资产总额
  • 审计报告分别在什么阶段
  • 基于python语言
  • mysql 连接语句
  • 价税合计公式计算
  • 样品开发计划
  • 企业所得税期间费用明细表
  • 本年利润的会计编码
  • 制造业企业无形资产怎么摊销
  • 注销时其他应付款借方余额怎么账务处理
  • 专项费用会计分录
  • 滞纳金是罚款支出吗
  • 存货类明细分类账一般采用
  • 本年负数去年正数如何算同比
  • 普通发票如何抵扣税
  • sql局部变量标识符
  • windows的气泡屏保会加速
  • linux操作系统的安装步骤
  • linux ed
  • j-v测试
  • jquery 点击按钮
  • Android GBK与UTF-8
  • 关于超链接下列说法中错误的是
  • js表单验证代码Email
  • 文件夹权限命令
  • js怎么写java代码
  • 浅谈jquery中next与siblings的区别
  • js几种类型
  • 安卓监听功能
  • 重庆电子税务局电话人工客服电话
  • 地税局社保宣传标语
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设