如何在 react-native android 应用程序中单击时将铃声模式更改为静音/响铃/振动?
Posted
技术标签:
【中文标题】如何在 react-native android 应用程序中单击时将铃声模式更改为静音/响铃/振动?【英文标题】:How to change ringer mode to Silent/Ring/Vibrate on click in react-native android application? 【发布时间】:2021-07-21 12:36:29 【问题描述】:我正在使用 react-native 创建一个适用于 android 的应用程序。我需要根据请求将振铃模式更改为静音或振铃或振动,并且必须更改手机的振铃模式。 如何实现此功能?
【问题讨论】:
【参考方案1】:您可以使用react-native-ringer-mode,虽然由于限制不支持 ios,但它在 Android 上就像一个魅力。
安装包。
npm install react-native-ringer-mode
将下面的行添加到您的AndroidManifest.xml
,因为需要将模式更改为静音模式或从静音模式更改。
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
你可以像这样使用它。代码示例取自包 README。
import React from 'react';
import View, Button from 'react-native';
import
useRingerMode,
RINGER_MODE,
checkDndAccess,
requestDndAccess,
from 'react-native-ringer-mode';
export default function App()
const mode, setMode = useRingerMode();
const changeMode = async (newMode) =>
if (newMode === RINGER_MODE.silent || mode === RINGER_MODE.silent)
const hasDndAccess = await checkDndAccess();
if (hasDndAccess === false)
// This function opens the DND settings.
// You can ask user to give the permission with a modal before calling this function.
requestDndAccess();
return;
setMode(newMode);
;
return (
<View>
<Button title="Silent" onPress=() => changeMode(RINGER_MODE.silent) />
<Button title="Normal" onPress=() => changeMode(RINGER_MODE.normal) />
<Button title="Vibrate" onPress=() => changeMode(RINGER_MODE.vibrate) />
</View>
);
【讨论】:
以上是关于如何在 react-native android 应用程序中单击时将铃声模式更改为静音/响铃/振动?的主要内容,如果未能解决你的问题,请参考以下文章
React-native - 如何在 android 上监控原生端生成的网络请求?
如何检查android设备支持手电筒的`react-native`?
在 react-native 中,我如何在 ios 和 android 的图像上添加水印
如何将 React-Native 项目集成到 Android-Studio?