【问题标题】:How to change ringer mode to Silent/Ring/Vibrate on click in react-native android application?如何在 react-native android 应用程序中单击时将铃声模式更改为静音/响铃/振动?
【发布时间】:2021-07-21 12:36:29
【问题描述】:

我正在使用 react-native 创建一个适用于 android 的应用程序。我需要根据请求将振铃模式更改为静音或振铃或振动,并且必须更改手机的振铃模式。 如何实现此功能?

【问题讨论】:

    标签: android react-native user-profile ring silent


    【解决方案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>
      );
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多