位置: 编程技术 - 正文

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

  • 增值税纳税申报时间
  • 同级财政拨款的管理要求有哪些
  • 公司购车购置税有优惠吗
  • 工伤私了赔偿
  • 装修预付款怎么做分录
  • 上月未抵扣完的进项税额
  • 计件工资的计算
  • 合伙企业购买股票产生的收益需要缴纳税款吗
  • 完税凭证是什么
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 小规模纳税人自来水税率
  • 盘盈对应的入账科目
  • 轩辕剑3字体
  • 解决口苦最快的方法
  • 待清算专户
  • mac怎么设置桌面组件
  • win10商店下载错误怎么回事
  • 怎么区分债券折价还是溢价
  • 照片文件夹如何压缩
  • vue3+ts写法
  • 发票开错了怎么处理好?
  • 收到投标保证金利息如何账务处理
  • 员工的生活费会不会扣个税
  • 价税款均未支付
  • 二手房转让中转什么意思
  • 统一社会保险费征收
  • framework core
  • php的框架有哪些
  • 收到职称评审费怎么做账
  • xss漏洞利用的场景
  • Node.js安装过程
  • 机器视觉 machine
  • mkisofs命令
  • 员工安全培训费可以计入安全费用吗
  • 结转成本费用的会计分录是什么?
  • 销售费用的主要类型有哪些
  • 未达起征点销售额是含税还是不含税
  • 过路费属于会计哪个科目
  • 文化事业建设费税收优惠2023
  • 固定资产融资租赁如何确认入账价值
  • mongodb win7
  • MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
  • 工地装饰工程包括哪些
  • 员工探亲路费报销入哪个科目
  • 分公司财务负责人要求
  • sql server 2008数据库引擎等安装失败
  • 异常凭证一定要转出吗
  • 企业开办期间账务处理
  • 待报解啥意思
  • 公账转法人私账用途写备用金可以吗
  • 住宿费收入会计分录
  • 逃税是什么意思?
  • 收到发票了填写什么单据
  • 发货快递费多少钱
  • 物业公司收取电费服务费
  • 增值税普通发票查询
  • 库存股的处理方式
  • 何为三证合一
  • 规划设计费收费依据
  • 包工包料工程如何计税
  • 高端电脑品牌
  • linux系统设置ntp同步
  • mac如何查看隐藏的文件夹
  • centos7查看运行级别
  • macbookpro屏幕显示
  • rhel7提供的5种基本安装方式是
  • win11连接win7共享打印机
  • system的方法
  • windows7怎么设置右键菜单
  • Cocos2dx3.2 Crazy Tetris update 定时更新 游戏逻辑处理
  • 批处理 ftp
  • unity mobile3d
  • javascript的原型,原型链,有什么特点?
  • Nodejs+Socket.io实现通讯实例代码
  • javascript delete 使用示例代码
  • jquery日期控件onchange事件
  • 火车票抵扣申报表怎么填
  • 江西国税电子税务局
  • 汽车销售环节要做什么
  • 江西税务客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设