使用 kivy/python 访问 android 手电筒(相机 LED 闪光灯)

Accessing android flashlight(camera LED flash) with kivy/python

我不知道如何使用 python 或 kivy 访问 android 上的 LED 灯,我尝试安装 python-for-android能够将 android 模块导入我的代码,但不是找不到模块。我按照此处的说明克隆了 python-for-android。我没有像我想的那样按照该页面安装 ndk 或 sdk,因为 kivy 已经使用它们,它们已经安装了。有人可以给我指出正确的方向吗?

是的,您可以在桌面上使用 Kivy 编写此应用程序,只是无法在桌面上对其进行测试。您必须每次构建并部署到 Android 设备进行测试。

改编自How to turn on camera flash light programmatically in Android?

检查闪存功能是否可用:

PythonActivity = autoclass('org.renpy.android.PythonActivity')
PackageManager = autoclass('android.content.pm.PackageManager')
pm = PythonActivity.mActivity.getPackageManager()
flash_available = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)

要使用手电筒,您的应用需要 FLASHLIGHT 和 CAMERA 权限。您可以将这些添加到 buildozer.spec 或 python-for-android 命令行。

最后,打开闪光灯:

Camera = autoclass('android.hardware.Camera')
CameraParameters = autoclass('android.hardware.Camera$Parameters')
cam = Camera.open()
params = cam.getParameters()
params.setFlashMode(CameraParameters.FLASH_MODE_TORCH)
cam.setParameters(params)
cam.startPreview()

关闭:

cam.stopPreview()
cam.release()