位置: 编程技术 - 正文

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

  • 证券交易印花税税率是多少
  • 房产税从价计征如何算
  • 如何查询个人所有贷款记录
  • 用现金支付的没有发票怎么办
  • 天猫店铺个人可以开吗
  • 所得税费用会影响营业利润吗
  • 失控发票补税可以抵扣吗
  • 税法关于开具发票的规定
  • 电子承兑汇票如何贴现网银操作
  • 误餐费没有发票怎么说明
  • 没有单价数量只有金额的发票可以用吗
  • 高温气温
  • 问福利费的发票如果是增值税专用发票,增值税可以抵扣吗?
  • 企业短期投资交增值税吗
  • 收到退回残疾金分录
  • 1697509300
  • 高新企业最新政策2020
  • 应收账款未计提坏账,但是确实收不回来
  • 上年计提的费用往来,能冲回吗
  • 工资的结转
  • win11默认用户名
  • 没有开工没有收入用书面语言表达
  • 水利基金减免了还用计提吗
  • 税务发票盖章要求
  • 公司向股东借款合法吗
  • php各大框架以及实现原理
  • 福利费发票已认证怎么查
  • linux中常用的文件类型有哪些如何区分
  • 销售费用中业务费包括哪些
  • 虚假财务报表的法律后果
  • 在一株植物上行走的作文
  • 农民工的职业培训
  • 多层是什么
  • PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
  • php is_a
  • opencv识别车牌
  • 生产设备改良支出需要结转到本年利润吗
  • 开发成本属于哪个会计准则
  • 用python处理图像
  • linux sz命令使用
  • 贷款利息现金流量项目
  • 总公司与分公司合作协议范本
  • 土地出让金的范围是什么
  • viite
  • 法人给对公账户转账
  • 报销业务招待费是什么凭证
  • 小规模纳税人不超过30万怎么做账
  • 税款所属期止是怎么写
  • 公司开发新产品时,由管理层任命的
  • 企业所得税费用标准
  • 投资主体将其拥有的货币或产业资本
  • 预付款充值发票
  • 什么叫小微企业主?
  • 员工报销没有发票可以从公户转账吗
  • 进项税有什么相关要求
  • 事业编制可以带计算器吗
  • 代理返利
  • 出纳提取现金的业务流程
  • 机票报销需要什么单据
  • 工业企业销售商品分录
  • 购建时间是什么意思
  • sqlserver数据库脚本
  • doc怎么使用
  • 搜狗拼音输入法xp系统
  • 比较简单的字
  • crack.exe是什么意思
  • 交换机操作系统版本
  • Linux常用命令的实验总结
  • win7如何安装kb3033929补丁
  • Activity的四种启动模式和onNewIntent()
  • jquery可编辑表格插件
  • jquery图片自动滚动
  • web技术栈
  • nodejs怎么连接mysql
  • 异步加载场景
  • javascript教程doc
  • unity中sendmessage
  • 使用灭火器时要对准火焰的什么部位喷射
  • 写给税务局的表扬信
  • 怎样登录市地税局网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设