位置: 编程技术 - 正文

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

  • 外购配套费为什么不计利润
  • 进项税额转出要交企业所得税吗
  • 增值税退税如何做账
  • 怎么免费用别人的网
  • 采购单是原始凭证吗
  • 中标服务费计入什么会计科目
  • 工资扣水电费怎么算
  • 没有纸质机票电子行程单电子版可以报销吗
  • 租了房子再转租
  • 个体工商户装修经营范围
  • 贷款未收属于什么科目
  • 小微企业增值税免税政策2023年
  • 企业租入固定资产发生的改良支出计入什么科目
  • 印花税多缴纳怎么办
  • 劳保费用可以开专票吗
  • 员工离职 社保
  • 税控盘怎么打票
  • 开具发票财务需要管理吗?
  • 空调安装费税率是6%
  • 人工费增值税的税率是多少?
  • 季初是什么意思
  • 一般纳税人所得税优惠政策
  • 公司的公益性捐款合法吗
  • 公司用备用金去哪里投诉
  • 固定资产报废处理流程图
  • 凭证制单和审核可以是一个人吗
  • 免征房产税是多少
  • 企业房产税怎么申报缴纳流程
  • 其他业务成本借贷方向表示
  • 购买员工宿舍床上用品怎么入账
  • 预付卡销售怎么做账
  • 广告制作包括印花吗
  • psr.exe是什么意思
  • 税金及附加多计提所得税年报怎么更正
  • 混合筹资的定义
  • vue的安装命令
  • php实现用户登录
  • php的什么函数可以判断变量是否存在
  • 投资性房地产的主要构成内容为
  • php的介绍
  • 小企业如何记账
  • MMEngine理解
  • 结转损益的凭证需要打印吗
  • 高价值配件用入固定资产吗
  • 企业所得税年报截止日期2023
  • 织梦网站停止使用了还侵权吗
  • python3 tcp
  • 个税系统中的离职怎么填
  • sqlserver附加数据库语句
  • 固定资产怎么进行无形资产清理的
  • 生产成本结转分录是什么
  • 购买办公用品属于什么凭证类型
  • 2019年无形资产的摊销额为
  • 印花税缴纳时间点
  • 过路费发票抵扣政策
  • 房地产企业土地增值税预缴
  • 免税设备是什么意思
  • 土地增值税的预征和清算
  • 利税总额计算公式表
  • 养猪场财务账目怎么做
  • 企业购买黄金有限制吗
  • 现金日记账的对账工作有哪些
  • mysql 5.7.33安装
  • Mysql 5.7.17 winx64在win7上的安装教程
  • 红帽子一个月能挣多少钱
  • mfc100udll
  • win8 更改电脑设置
  • Win10开机提示黑屏字母
  • win10系统怎么卸载ie浏览器
  • Win10 Mobile RS1预览版14267.1004 修复Lumia 550充电问题
  • Android游戏开发入门
  • python变量字符串等函数
  • [置顶]bilinovel
  • javascript函数的定义
  • node.js快速入门
  • Nodejs+express+ejs简单使用实例代码
  • 如何使用wordpress
  • 基础的十进制按什么来算
  • 地税局和税务局一样吗
  • 徐州注销营业执照去哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设