android - Kotlin 上的 Android 手电筒
问题描述
您需要打开手机上的 LED。我写了一个简单的应用程序。应用程序启动时 LED 应亮起。该代码与 Stackoverflow 应用程序代码上的解决方案相匹配:
package com.example.flash
import android.hardware.Camera
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var cam = Camera.open()
var p = cam.parameters
p.flashMode = Camera.Parameters.FLASH_MODE_TORCH
cam.parameters = p
cam.startPreview()
}
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kgskassa">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
允许访问手机上的摄像头。不工作。想法?
解决方案
package com.example.flash
import android.content.Context
import android.hardware.camera2.CameraAccessException
import android.hardware.camera2.CameraManager
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
var flashLightStatus: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
openFlashLight()
}
private fun openFlashLight() {
val cameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
val cameraId = cameraManager.cameraIdList[0]
if (!flashLightStatus) {
try {
cameraManager.setTorchMode(cameraId, true)
flashLightStatus = true
} catch (e: CameraAccessException) {
}
} else {
try {
cameraManager.setTorchMode(cameraId, false)
flashLightStatus = false
} catch (e: CameraAccessException) {
}
}
}
}
推荐阅读
- kernel - 如何运行 Aion 内核脚本
- node.js - 如何按扩展名搜索文件并在文件夹和子文件夹中包含字符串?
- sqlite - 返回表中每个 id 的计数
- javascript - Highstock 双 yAxis - 图例可以拆分吗?
- python - 从多个 excel 模板文件创建 pandas 数据库 - python 3
- symfony-3.4 - 相关实体 Symfony 3 的表单构建器
- google-app-engine - 如何使用云构建将环境变量传递给 app.yaml
- javascript - Api-Version 标头未正确发送
- ionic2 - 如何知道 ionic 应用程序将在 ionic 3 中关闭或终止?
- c# - DynamoDB 中的用户数据模型