android怎么获取sd卡(获取Android手机中SD卡存储容量)
开发中有时要知道SD卡存储容量的情况那么你要是不知道怎么获取怎么办?去某度搜一下不就好了?搜一下确实能看到很多例子,但几乎是一模一样的首先要有权限再根据路径得到一个StatFs对象使用用StatFs对象可以得到SD卡中块的大小(getBlockSize)和块的总数(getBlockCount)然后用块数量乘以块大小,就等到了最容量的字节数剩余空间的大小用getAvailableBlocks去乘以块大小(getBlockSize)嗯,这个看起来应该是没有什么问题的但是你如果照着写,会发现getBlockSize、getBlockCount、getAvailableBlocks都被标上了@Deprecated,过时了,下面我们就来说一说关于android怎么获取sd卡?我们一起去了解并探讨一下这个问题吧!
android怎么获取sd卡
开发中有时要知道SD卡存储容量的情况。那么你要是不知道怎么获取怎么办?去某度搜一下不就好了?搜一下确实能看到很多例子,但几乎是一模一样的。首先要有权限。再根据路径得到一个StatFs对象。使用用StatFs对象可以得到SD卡中块的大小(getBlockSize)和块的总数(getBlockCount)。然后用块数量乘以块大小,就等到了最容量的字节数。剩余空间的大小用getAvailableBlocks去乘以块大小(getBlockSize)。嗯,这个看起来应该是没有什么问题的。但是你如果照着写,会发现getBlockSize、getBlockCount、getAvailableBlocks都被标上了@Deprecated,过时了。
过时了怎么办?自己看看源码吧。有getBlockSizeLong、getBlockCountLong、getAvailableBlocksLong。直接换成这三个就可以了?
还是再看看源码吧。有getTotalBytes,有getFreeBytes,我还用块去计算做什么?直接获取啊。getAvailableBytes和getFreeBytes有什么区别?getFreeBytes包含了普通应用无法访问的保留部分。
网上得到的东西,要带上脑子去使用。有些代码已经快有十年的历史了,还被某些人简单的复制粘贴出来,当新的文章来发表。
下面是用kotlin代码写的。这几行kotlin代码和java的不同之处只是没有了new和get,类型也是自动判断的。
val rootFile = Environment.getExternalStorageDirectory()
val stateFs = StatFs(rootFile.absolutePath)
val totalSize = stateFs.totalBytes
val freeSize = stateFs.freeBytes
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com