如何检查android设备支持手电筒的`react-native`?

Posted

技术标签:

【中文标题】如何检查android设备支持手电筒的`react-native`?【英文标题】:How to check in `react-native` that android device supports flashlight? 【发布时间】:2020-03-02 14:37:12 【问题描述】:

我的react-native 应用程序中有一个手电筒图标。如果移动设备不支持手电筒或没有手电筒,我想隐藏它。

在原生android中我们有这个解决方案:

[https://***.com/a/19599365/6644676][1]

【问题讨论】:

【参考方案1】:

使用这个 npm 包。

https://www.npmjs.com/package/react-native-torch

如果设备没有torch,那么下面的代码会抛出异常并执行catch块,这样你就可以知道设备是否有torch

try 
   await Torch.switchState(newTorchState);
   this.setState( isTorchOn: newTorchState );
 
catch (e) 
  ToastAndroid.show(
    'We seem to have an issue accessing your torch',
    ToastAndroid.SHORT
  );

【讨论】:

感谢您的回答。但这似乎是一种解决方法。不是一个合适的解决方案。 那么我相信你需要在你的 react native 项目中使用 android 原生代码创建一个原生模块并将其访问到 react native 组件中,参考:facebook.github.io/react-native/docs/native-modules-android @AngadTiwari @AngadTiwari 可以用react-native-torch来判断手电筒是否开着吗?

以上是关于如何检查android设备支持手电筒的`react-native`?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android N 中打开设备手电筒?

如何打开安卓设备的前置手电筒(不是后置手电筒)

Android如何知道手电筒是不是打开

如何让强光手电筒支持TYPE-C接口快充协议?

如何在android中增加和减少手电筒亮度

有啥方法可以访问 Android 中的手电筒灯状态。我想以编程方式检查闪光灯是处于开启状态还是关闭状态