我想在 Android 中以编程方式打开前置闪光灯(不带相机预览)。我用谷歌搜索了它,但我找到的帮助将我引到了这个页面
有没有人有任何链接或示例代码?
对于 2021 年,使用 CameraX,现在变得非常容易:
对于这个问题,你应该:
检查手电筒是否可用?
如果是这样,则关闭/打开
如果没有,那么您可以根据您的应用需求做任何事情。
检查设备中闪存 的可用性:
您可以使用以下内容:
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪存可用,则返回 true,否则返回 false。
请参阅:http: //developer.android.com/reference/android/content/pm/PackageManager.html 了解更多信息。
打开/关闭手电筒:
我用谷歌搜索并得到了关于 android.permission.FLASHLIGHT 的信息。Android manifests 的权限看起来很有希望:
<!-- Allows access to the flashlight --> <permission android:name="android.permission.FLASHLIGHT" android:permissionGroup="android.permission-group.HARDWARE_CONTROLS" android:protectionLevel="normal" android:label="@string/permlab_flashlight" android:description="@string/permdesc_flashlight" />
然后使用Camera并设置Camera.Parameters。这里使用的主要参数是FLASH_MODE_TORCH。
例如。
代码片段打开相机手电筒。
Camera cam = Camera.open(); Parameters p = cam.getParameters(); p.setFlashMode(Parameters.FLASH_MODE_TORCH); cam.setParameters(p); cam.startPreview();
关闭相机 LED 灯的代码片段。
cam.stopPreview(); cam.release();
我刚刚找到了一个使用此权限的项目。检查快速设置的源代码。这里http://code.google.com/p/quick- settings/(注意:此链接现已损坏)
对于手电筒直接看 http://code.google.com/p/quick-settings/source/browse/trunk/quick- settings/#quick- settings/src/com/bwx/bequick/flashlight(注意:这个链接是现在坏了)
更新6 您还可以尝试按照此答案中所述添加 SurfaceView LED 手电筒 on Galaxy Nexus 可通过什么 API 控制? 这似乎是适用于许多手机的解决方案。
更新 5 主要更新
我找到了一个替代链接(对于上面断开的链接):http ://www.java2s.com/Open-Source/Android/Tools/quick- settings/com.bwx.bequick.flashlight.htm您现在可以使用它关联。[更新:14/9/2012 此链接现已损坏]