位置: 编程技术 - 正文

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

  • 房屋租赁服务增值税税率是多少
  • 销项税额和进项税额发票怎么区别
  • 个人获得的专利有哪些
  • 房产税与土地使用税如何申报
  • 公司的纳税人识别号怎么查询
  • 增值税专用发票几个点
  • 固定资产升值可以入账吗?
  • 印花税申报减免额不能为0怎么报
  • 计提存货跌价准备怎么计算
  • 诉讼财产保全保险费计算
  • 部分预收账款会计科目
  • 收到国外的服务费怎么开票
  • 逆流交易固定资产折旧实现,为什么按差额
  • 小规模纳税人印花税怎样计算
  • 大型超市税收分析报告
  • 季报进入国税官网后怎么操作?
  • 成本费用率偏低
  • 公司为职工购买社保只购买三险可以吗
  • 转账支票用途可以写劳务费吗
  • 无形资产的出租租金通过什么科目核算
  • 免税企业进项怎么处理
  • 启用或关闭windows功能怎么勾选
  • 建安企业收取管理费虚开怎么处理
  • 进项已抵扣发票作废账务处理
  • 固定资产应怎么做账
  • 商事账簿编制的一般规则是什么
  • 工业园租金大概是多少
  • Win10 (21H1)Build 19043.1266更新补丁KB5005611正式版发布:附修复更新内容
  • url是什么格式的文件怎么打开
  • imgrd.exe是什么
  • unik面部识别怎么用
  • 其他业务收入对应的成本
  • 在一个js文件中怎么写
  • PHP:imagecolorat()的用法_GD库图像处理函数
  • 空调维修费进什么会计科目
  • 网上打印企业征信流程
  • 自产自销的苗木免税吗
  • 学生个人网站制作html代码
  • Vue中@change、@input和@blur的区别以及什么是@keyup
  • print函数php
  • 转出多交增值税账务处理
  • 往来款项的含义
  • 商贸公司库存商品怎么做分录
  • 企业纳税人识别号是什么
  • 印花税的营业账簿是什么意思
  • mysql的简单操作
  • 固定资产盘亏要改变资产原值吗
  • 个体工商户属于个人还是企业
  • 甲供材料怎么记账
  • 房屋租赁水电费计入什么科目
  • 预收账款是负债增加还是减少
  • 国债逆回购收益什么时候到账
  • 个人承担社保有哪些
  • 固定资产内部抵扣增值税
  • 专票已认证但又不能抵扣
  • 无形资产未取得发票
  • 短期借款的账务处理借增贷减
  • 什么叫做未入账金额
  • 费用报销的凭证是什么
  • 营改增问题解答
  • 公司购买电缆线用于修缮厂房
  • 餐饮会计做账流程图
  • 房地产企业的土地使用权计入什么科目
  • mysql5.7版本下载
  • windowsvista忘记登录密码
  • 怎么删除文件的隐藏属性
  • freebsd11.3安装教程
  • win8.1 升级
  • windows 8.1 with update
  • 禁用强制驱动程序签名有什么用
  • 原生js添加css样式
  • shell脚本echo输出变量
  • 作用
  • linux shell脚本命令
  • 怎么监控键盘输入
  • 用if函数计算个人应交所得税
  • 税务局与地税局一样吗?
  • 蚌埠城乡医保缴费查询
  • 北京国税网上办税服务大厅
  • 发生技术入股递增怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设