android 内存和运存信息读取方法以及本地IP地址信息读取

本文提供了Kotlin语言中用于获取本机IP地址、SD卡大小、系统内存等实用功能的代码实现,帮助开发者快速掌握并应用到实际项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面采用Kotlin实现方式,java 实现方法对照着修改就可以使用,废话不多说直接上代码:

 

/**
 * 获取本机IP地址
 */
fun getIpAddressString(): String {
    try {
        var enNetI: Enumeration<NetworkInterface> = NetworkInterface.getNetworkInterfaces()
        while (enNetI.hasMoreElements()) {
            var netI = enNetI.nextElement()
            var enumIpAddr: Enumeration<InetAddress> = netI.inetAddresses
            while (enumIpAddr.hasMoreElements()) {
                var inetAddress = enumIpAddr.nextElement();

                if (inetAddress is Inet4Address && !inetAddress.isLoopbackAddress) {
                    return inetAddress.hostAddress
                }
            }
        }

    } catch (e: Exception) {
        e.toString()
    }
    return "0.0.0.0";

}

/**
 * 获得SD卡总大小
 *
 * @return
 */
public fun getSDTotalSize(context: Context): String? {
    val path: File = Environment.getExternalStorageDirectory()
    val stat = StatFs(path.getPath())
    val blockSize: Long = stat.blockSizeLong
    val totalBlocks: Long = stat.blockCountLong
    return formatFileSize(context, blockSize * totalBlocks)
}

/**
 * 获得sd卡剩余容量,即可用大小
 *
 * @return
 */
public fun getSDAvailableSize(context: Context): String? {
    val path: File = Environment.getExternalStorageDirectory()
    val stat = StatFs(path.getPath())
    val blockSize: Long = stat.blockSizeLong
    val availableBlocks: Long = stat.availableBlocksLong
    return formatFileSize(context, blockSize * availableBlocks)
}


/**
 * 获取系统内存大小
 * @return
 */
public fun getSysteTotalMemorySize(context: Context): String? { //获得ActivityManager服务的对象
    val mActivityManager: ActivityManager? =
        (context as Activity).getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager?
    //获得MemoryInfo对象
    val memoryInfo: ActivityManager.MemoryInfo = ActivityManager.MemoryInfo()
    //获得系统可用内存,保存在MemoryInfo对象上
    mActivityManager?.getMemoryInfo(memoryInfo)
    val memSize: Long = memoryInfo.totalMem
    //字符类型转换
    return formatFileSize(context,memSize)
}

/**
 * 获取系统可用的内存大小
 * @return
 */
public fun getSystemAvaialbeMemorySize(context: Context): String? { //获得ActivityManager服务的对象
    val mActivityManager: ActivityManager? =
        (context as Activity).getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager?
    //获得MemoryInfo对象
    val memoryInfo: ActivityManager.MemoryInfo = ActivityManager.MemoryInfo()
    //获得系统可用内存,保存在MemoryInfo对象上
    mActivityManager?.getMemoryInfo(memoryInfo)
    val memSize: Long = memoryInfo.availMem
    //字符类型转换
    return formatFileSize(context,memSize)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值