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

时间:2015-01-23 14:03:43

标签: android python android-camera kivy

我无法弄清楚如何使用python或kivy访问我的android上的led灯,我已经尝试安装python-for-android以便能够将android模块导入到我的代码中但是它'不能找到模块。我按照这里的指示克隆了python-for-android。我根本没有按照那个页面安装ndk或sdk,因为kivy已经使用过它们已经安装好了。有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以从桌面上在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()