位置: 编程技术 - 正文

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

  • 税务行政诉讼是由税务机关进行审理并作出裁决
  • 小规模城建
  • 企业净利润怎么分配
  • 当月的进项当月可以认证吗
  • 公司租用私人汽车违法吗
  • 投资性房地产账面价值大于公允价值计入什么
  • 合同和发票计量一样吗
  • 未达起征点的增值税怎么账务处理
  • 门面入股做生意
  • 房租费没有发票怎么做账务处理
  • 抵债资产处置账务实例
  • 公司交的拍卖费计入哪个会计科目?
  • 待抵扣进项税额是什么情况下用的
  • 运输费计入采购成本的分录
  • 非独立核算的分公司注销流程
  • 离职补偿金要交个税的例子
  • 企业用户纳税人识别号不合法
  • 城市公交可以承包吗
  • 股权转让怎么缴纳个人所得税
  • 对方承担税费怎么做会计分录
  • 企业合并报表后为何要抵消盈余公积补提?
  • 应交税费有余额怎么结转
  • 公司购买模具的会计科目
  • 资金筹集业务的账务处理重点笔记
  • 资源税计税依据含不含增值税
  • 冲账备用金的记账凭证怎么填
  • 小规模纳税人无票收入免税吗
  • win11如何退回win10超过10天
  • NPFMSG.exe - NPFMSG是什么进程 有什么用
  • 如何把文档转换成二维码
  • windows 11截图
  • msgdlg.exe是什么意思
  • 公司电路改造费怎么账务处理
  • 事业单位长期应付款挂账处理规定
  • 代收税款是什么意思
  • php -v
  • php代码生成
  • php弹出登录框
  • pytorch自动编码器
  • 瑞吉接送
  • nmap的命令
  • 公司请的临时工
  • 销售旧货怎么填写申报表
  • 零申报的公司有财务报表吗
  • 技术研发费用包括哪些
  • 资产负债表投资性房地产怎么填
  • c语言fgets函数用法stdin
  • 3分钟学会做蛋挞
  • 税前利润弥补是什么意思
  • 无形资产摊销是当月增加当月摊销吗
  • 什么叫境外地区
  • 异地预缴税款少交了城建税怎么办
  • 装修行业小规模最高能开几个点的票
  • 工程类的增值税
  • 怎么处理固定资产残值
  • 营改增后税额计算公式
  • 高新技术企业进项税加计扣除10%如何填企业所得税季报
  • 税交多了可以退吗
  • 股本金退出要交税吗?
  • 展位费按多少税率
  • 建账前的准备工作
  • 资产负债表的编制依据是会计恒等式
  • 大型商业企业
  • 违反会计规定承担责任
  • win10执行数据保护如何开启
  • vim入门教程
  • linux的安装
  • 怎么进入win7系统
  • windows7桌面小工具下载
  • hke是什么意思
  • linux如何限制指定ip访问
  • js基于什么语言
  • node.js项目结构
  • js如何获取url
  • linux 删除inode
  • 安卓开发例子
  • unity androidx
  • 2023居民医保怎么交
  • 房地产的土地增值税怎么交
  • 云南省电子税务局登录入口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设