【发布时间】:2021-07-21 12:36:29
【问题描述】:
我正在使用 react-native 创建一个适用于 android 的应用程序。我需要根据请求将振铃模式更改为静音或振铃或振动,并且必须更改手机的振铃模式。 如何实现此功能?
【问题讨论】:
标签: android react-native user-profile ring silent
我正在使用 react-native 创建一个适用于 android 的应用程序。我需要根据请求将振铃模式更改为静音或振铃或振动,并且必须更改手机的振铃模式。 如何实现此功能?
【问题讨论】:
标签: android react-native user-profile ring silent
您可以使用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>
);
}
【讨论】: