安卓kotlin 获取某些手机信息

        // 获取手机型号
        val model = Build.MODEL

        // 获取系统版本
        val version = Build.VERSION.RELEASE

        // 获取已使用的存储空间大小(单位:GB)
        val usedSpace = bytesToGB(Environment.getDataDirectory().totalSpace - Environment.getDataDirectory().freeSpace)

        // 获取总的存储空间大小(单位:GB)
        val totalSpace = bytesToGB(Environment.getDataDirectory().totalSpace)

        // 获取剩余空间大小(单位:GB)
        val freeSpace = bytesToGB(Environment.getDataDirectory().freeSpace)

        //上次开机时间
        val lastBootTime = System.currentTimeMillis() - SystemClock.elapsedRealtime()
        val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())
        val date = Date(lastBootTime)
        val formattedDate = dateFormat.format(date)

        //系统运行时间
        val uptime = SystemClock.elapsedRealtime()
        val hours = TimeUnit.MILLISECONDS.toHours(uptime)
        val minutes = TimeUnit.MILLISECONDS.toMinutes(uptime) % 60
        val seconds = TimeUnit.MILLISECONDS.toSeconds(uptime) % 60
        val formattedUptime = String.format("%dh,%dm,%ds", hours, minutes, seconds)

        //网络类型
        val networkType = getCurrentNetworkType(requireContext())

        //子网掩码
        val subnetMask = getSubnetMask()

        //Ip地址
        val ipAddress = getIpAddress()

        //CPU 核心数
        val cpuNum = Runtime.getRuntime().availableProcessors()

        //CPU型号
        val cpuModel = System.getProperty("os.arch")

        //运行内存
        val actManager = requireActivity().getSystemService(ACTIVITY_SERVICE) as ActivityManager
        val memInfo = ActivityManager.MemoryInfo()
        actManager.getMemoryInfo(memInfo)
        val totalMemory = bytesToGB(memInfo.totalMem)

        val intent = requireContext().registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))

        //获取电池电量
        val level = intent?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) ?: -1
        val scale = intent?.getIntExtra(BatteryManager.EXTRA_SCALE, -1) ?: -1
        val batteryLevel = if (level != -1 && scale != -1) {
            (level.toFloat() / scale * 100).toInt()
        } else {
            -1
        }

        //获取电池温度
        val temperature = (intent?.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) ?: 0)/ 10.0f

        // 获取电池电压
        val voltageValue = (intent?.getIntExtra(BatteryManager.EXTRA_VOLTAGE, 0) ?: 0)/ 1000.0f

        // 获取电池品牌
        val brand = Build.BRAND

        // 获取电池状态
        val status = intent?.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN) ?: BatteryManager.BATTERY_STATUS_UNKNOWN
        val statusStr = when (status) {
            BatteryManager.BATTERY_STATUS_CHARGING -> "充电中"
            BatteryManager.BATTERY_STATUS_DISCHARGING -> "放电中"
            BatteryManager.BATTERY_STATUS_FULL -> "已充满"
            BatteryManager.BATTERY_STATUS_NOT_CHARGING -> "未充电"
            else -> "未知状态"
        

获取摄像头信息

  //检查权限
    fun checkSelfPermission(){
        if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {

            cameraInfo_tv.text = "点击查询"

        } else {
            // 应用已经有相机权限,执行相机操作
            // 在这里调用获取相机信息的方法
            getCameraPixelInfo()
        }
    }

获取屏幕信息

        //获取屏幕尺寸
        val screenSize = getScreenSizeInInches(requireContext())

        //获取屏幕分辨率
        val resolution = getResolution(requireContext())


    fun getCameraPixelInfo() {
        val cameraInfo = StringBuilder()
        val numberOfCameras = Camera.getNumberOfCameras()

        for (i in 0 until numberOfCameras) {
            val camera = Camera.open(i)
            val parameters = camera.parameters
            val cameraInfoInstance = Camera.CameraInfo()
            Camera.getCameraInfo(i, cameraInfoInstance)

            val facing = if (cameraInfoInstance.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) "前置" else "后置"
            val pixelInfo = "${facing}:${parameters.pictureSize.width}x${parameters.pictureSize.height}"

            cameraInfo.append(pixelInfo).append("\n")

            camera.release()
        }

        cameraInfo_tv.text = numberOfCameras.toString()
        cameraInfo_tv.setBackgroundResource(R.color.transparency)

        Log.d(TAG, "摄像头信息:\n$cameraInfo")

    }

    fun getScreenSizeInInches(context: Context): Double {
        val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
        val displayMetrics = DisplayMetrics()
        windowManager.defaultDisplay.getMetrics(displayMetrics)

        val x = displayMetrics.widthPixels / displayMetrics.xdpi
        val y = displayMetrics.heightPixels / displayMetrics.ydpi

        val screenSizeInInches = Math.sqrt((x * x + y * y).toDouble())

        return screenSizeInInches
    }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Kotlin是一种现代化的编程语言,它可以用于开发Android应用程序。要获取手机视频并进行分页显示,你可以使用Android的媒体库和RecyclerView来实现。 首先,你需要在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 然后,你可以使用MediaStore类来获取手机上的视频信息。下面是一个简单的示例代码: ```kotlin import android.provider.MediaStore import android.content.ContentUris // 获取手机上的视频信息 fun getVideos(): List<Video> { val videos = mutableListOf<Video>() val projection = arrayOf( MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DURATION, MediaStore.Video.Media.SIZE ) val sortOrder = "${MediaStore.Video.Media.DATE_ADDED} DESC" val query = contentResolver.query( MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, sortOrder ) query?.use { cursor -> val idColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID) val nameColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME) val durationColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION) val sizeColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE) while (cursor.moveToNext()) { val id = cursor.getLong(idColumn) val name = cursor.getString(nameColumn) val duration = cursor.getLong(durationColumn) val size = cursor.getLong(sizeColumn) val contentUri = ContentUris.withAppendedId( MediaStore.Video.Media.EXTERNAL_CONTENT_URI, id ) val video = Video(id, name, duration, size, contentUri) videos.add(video) } } return videos } data class Video( val id: Long, val name: String, val duration: Long, val size: Long, val contentUri: Uri ) ``` 接下来,你可以使用RecyclerView来显示视频列表,并实现分页加载。这里只提供一个简单的示例代码: ```kotlin import androidx.recyclerview.widget.RecyclerView // 在Activity或Fragment中使用RecyclerView显示视频列表 fun showVideoList() { val videos = getVideos() val recyclerView: RecyclerView = findViewById(R.id.recyclerView) val adapter = VideoAdapter(videos) recyclerView.adapter = adapter } ``` 这是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜8227

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值