Kotlin 上的 Android 手电筒
Posted
技术标签:
【中文标题】Kotlin 上的 Android 手电筒【英文标题】:Flashlight for Android on Kotlin 【发布时间】:2020-11-25 06:26:33 【问题描述】:您需要打开手机上的 LED。我写了一个简单的应用程序。应用程序启动时 LED 应亮起。该代码与 *** 上的解决方案相匹配 申请代码:
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"/>
允许访问手机上的摄像头。 不工作。想法?
【问题讨论】:
你说它“不起作用”。 - 会发生什么? 您还需要添加相机运行时权限 ***.com/questions/42275906/… 当用户授予权限时,然后使用您的代码打开 LEF 【参考方案1】: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)
【讨论】:
以上是关于Kotlin 上的 Android 手电筒的主要内容,如果未能解决你的问题,请参考以下文章
Android开启手电筒功能(完美适配Android4x,5x,6x)
如何检查android设备支持手电筒的`react-native`?
Android : 如何使用 WEBRTC android io.pristine.libjingle:11139 打开手电筒