位置: 编程技术 - 正文

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

  • 增值税税控系统技术维护费
  • 员工扣了个税但没交给税务局
  • 金税盘连接不上电脑是怎么回事
  • 怎么应对降税,不含税价怎么应对
  • 个人所得税是全部收入吗
  • 企业为员工承担的个税可以税前扣除吗
  • 工会经费计税依据是应发还是实发
  • 独立账户负债核算内容
  • 商业零售企业实行增值税后购进商品业务的账务处理
  • 采用托收承付方式怎么做分录?
  • 机械租赁增值税税率2022年
  • 应收分保合同准备材料
  • 科研项目间接费用会计分录
  • 举办活动的工作要求
  • 企业增资扩股如何办理
  • 公司固定资产丢失谁负责
  • 企业开具的增值税专用发票属于
  • 公司做账是做什么
  • 资源税征收管理纳税期限
  • 增值税发票地址开错了有影响吗
  • 自产自销产品如何入库存
  • 工程发票没写经办人没写可以吗
  • 关于个人所得税下列说法正确的是
  • 期交保费资金占用年限计算公式
  • 暂估原材料已领用还红冲吗
  • 房地产企业预售收入作为业务招待费
  • 预缴增值税抵扣销项税额账务处理
  • 苹果手机上显示LTE是什么意思
  • windows11iso镜像多久更新一次
  • 存货盘盈怎么做账
  • 土地增值税内控报告
  • GrooveMonitor.exe是什么进程?GrooveMonitor.exe可以禁用卸载吗?
  • php读取txt文件内容
  • 完美解决索尼电视arc无声音
  • 非上市员工持股
  • 个税专项扣除中赡养老人
  • php文件用什么运行
  • 离职之后个税
  • 销售费用凭证
  • 图像处理入门
  • progress的用法及短语
  • setenforce 0命令
  • 大学生创新创业大赛官网
  • 暂估的会计处理
  • 小规模企业应交税费
  • 电子口岸报关单在哪下载
  • 财务报表报送与信息采集(小企业会计准则)季报
  • 公司借给股东的钱金额较大股东可以在年底现金归还吗
  • 销售劳务和销售货物的区别
  • 公司申请破产后债务谁来还
  • sqlserver2005没有服务器名称
  • 企业保持存货的必要性
  • 亏损企业研发费用必须加计扣除吗
  • 个体工商户税务注销流程
  • 工程预收款税票
  • 以股权投资入股新公司税务处理
  • 小规模纳税人转一般纳税人当月如何申报
  • 以前年度损益调整
  • 计提工资的凭证要附单据吗
  • 客户将发票丢了怎么赔偿
  • 出口单证不齐责令整改可以处
  • 软件属于无形资产什么类别
  • windows下命令
  • xp系统怎么提升性能
  • win8系统电脑没声音怎么办
  • win10通知中心
  • linux修改服务器ip地址
  • win7开机假死
  • win10地图不显示
  • linux确认命令
  • node+express+ejs制作简单页面上手指南
  • 基于JAVASCRIPT实现的可视化工具是
  • Node.js中的事件循环是什么意思
  • nodejs实战
  • unity f1
  • php实现登录功能
  • java urlencode如何使用
  • Android中dip、dp、sp、pt和px的区别
  • jquery悬浮显示
  • 办理税务迁移的流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设