位置: 编程技术 - 正文

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

  • 价税合计金额怎么算出税额
  • 什么是增值税发票图片
  • 附加税费申报没有怎么填
  • 计算土地增值税时增值税可以扣除吗
  • 融资租赁的长期投资包括
  • 企业所得税工资薪金支出怎么填
  • 销售货物没有开票如何处理
  • 融资租赁资产如何入账
  • 营改增后餐饮业税率
  • 个体工商户每月不超过10万免税
  • 地税服务业发票税率多少
  • 个人所得税怎么查
  • 专票税率开错了有什么影响
  • 何时进行文化事业建设
  • 应付利润是会计科目吗
  • 小规模纳税人销售农产品免税吗
  • 购房时收取的卖方费用
  • 企业的无形资产包括哪些内容
  • 企业注销时未分配利润怎么处理
  • win10专业版如何改为家庭版
  • 息税前利润和税后经营净利润
  • 公司代缴社保公司吃亏吗
  • won10字体变大
  • 线上网速测试
  • 装win7ahci
  • smartypig
  • KunlunPlatform.exe是什么进程?KunlunPlatform.exe是安全的程序吗?
  • 蚊子咬了怎么消肿止痒最快红霉素软膏
  • win10专区
  • 工程结算书和竣工结算书
  • 企业实际缴纳税款额账务怎么看
  • 长期股权投资的核算方法
  • ai图片生成矢量图
  • 直线折旧法账务处理例题
  • python2 tkinter
  • 年度预算的意义
  • 为什么增值税申报表保存不了
  • 电子承兑逾期超过30天怎么办
  • 上个月没有清卡在其他地区税务
  • 印花税减征比例
  • 减征增值税的会计科目
  • 去年留抵税额会计分录
  • sqlserver分页查询越到最后越慢
  • 报销金额大于发票怎么办
  • 个人所得税手续费比例
  • ibps对公提回贷记有什么影响
  • 预交一年的房租怎么做账
  • 固定资产折旧提头不提尾
  • 工程建设项目融资方式有哪些
  • 购入投资性房地产支付的相关税费
  • 低值易耗品入账
  • 苗木税票怎么抵扣
  • 银行手续费没拿可以退吗
  • 成本费用利润率一般在什么范围
  • 房地产实收资本怎么算
  • 待摊费用和预提费用的区别
  • 深入分析换一种说法
  • win10怎么进u盘系统
  • linux怎么vi
  • ubuntu源代码
  • aix操作命令
  • winxp系统界面图片
  • linux发布项目
  • seg是什么文件
  • win7更新8007000e
  • linux命令eof
  • vb win7
  • echarts怎么样
  • vue cli3 webpack配置
  • shell脚本实战
  • 详细解读了
  • jquery实现二级联动菜单
  • jQuery使用ajax跨域获取数据的简单实例
  • 江苏省国家税务局总局官网
  • 收到虚开增值税专用发票怎么处理
  • 云南国税通用发票查询
  • 集团收管理费开什么发票
  • A级纳税人和一般纳税人区别
  • 会计建账时一般需要哪几本账
  • 转卖车辆车船税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设