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

下面采用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)
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值