Socket
Socket
Sign inDemoInstall

react-native-ringtone-manager-new

Package Overview
Dependencies
0
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-ringtone-manager-new

Setting ringtones programatically is not available in iOS unfortunately. iTunes has it's own ringtone store available and there is no public API for setting ringtones. This library is for Android only.


Version published
Maintainers
1
Weekly downloads
4
increased by300%

Weekly downloads

Readme

Source

react-native-ringtone-manager

iOS Foreword

Setting ringtones programatically is not available in iOS unfortunately. iTunes has it's own ringtone store available and there is no public API for setting ringtones. This library is for Android only.

Getting started

With npm:

$ npm install react-native-ringtone-manager-new --save

Or with yarn:

$ yarn add react-native-ringtone-manager-new

Mostly automatic installation

$ react-native link react-native-ringtone-manager-new

Manual installation

Android
  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNRingtoneManagerPackage; to the imports at the top of the file
  • Add new RNRingtoneManagerPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-ringtone-manager-new'
    project(':react-native-ringtone-manager-new').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-ringtone-manager-new/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-ringtone-manager-new')
    

Usage

import { Button } from 'react-native';
import RingtoneManager from 'react-native-ringtone-manager-new';
const App = () => {
  async function setRingtone() {
    try {
      const granted = await RingtoneManager.requestPermissions();
      if (granted) {
        const options = {
          title: 'Select Ringtone',
          type: RingtoneManager.TYPE_ALL,
          includeSilent: true,
          stopPreviousRingtone: true,
        };
        const uri = await RingtoneManager.getRingtoneUri(options);
        if (uri) {
          RingtoneManager.setRingtone(
            uri,
            RingtoneManager.TYPE_ALL,
            (value) => {
              console.log(value);
            },
            (err) => {
              console.log(err);
            }
          );
          console.log('Ringtone set successfully.');
        }
      }
    } catch (err) {
      console.log('Error while setting ringtone:', err);
    }
  }

  return (
    <View style={styles.container}>
      <Button title="Set Ringtone" onPress={() => setRingtone()} />
    </View>
  );
};

export default App;

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Note

The API is still under development.

RingtoneManager.getRingtones()

React.useEffect(() => {
  RingtoneManager.getRingtones((value) => {
    setResult(value);
  });
}, []);

Returns a list of Ringtones

RingtoneManager.getRingsByType(RINGTONE_TYPE)

React.useEffect(() => {
  RingtoneManager.getRingsByType(RingtoneManager.TYPE_NOTIFICATION, (value) => {
    setResult(value);
  });
}, []);

Returns a list of Ringtones of the given type:

  • RingtoneManager.TYPE_ALL
  • RingtoneManager.TYPE_RINGTONE
  • RingtoneManager.TYPE_NOTIFICATION
  • RingtoneManager.TYPE_ALARM

RingtoneManager.createRingtone(settings)

Sets the system ringtone to the given ringtone. Settings options given below:

ParamTypeDescription
uriStringThe full file path to the ringtone on the file system.
titleStringThe title of the ringtone. Will appear in the picker with this title.
artistStringThe artist of the ringtone.
sizeIntegerThe size of the ringtone file.
mimeTypeStringThe mime type of the ringtone, for example: audio/mp3
durationIntegerThe duration of the ringtone in seconds.
ringtoneTypeRINGTONE_TYPEThe ringtone type: TYPE_ALL, TYPE_RINGTONE, TYPE_NOTIFICATION, TYPE_ALARM

RingtoneManager.pickRingtone()

const pickRingtone = () => {
  RingtoneManager.pickRingtone(
    RingtoneManager.TYPE_NOTIFICATION,
    (value: rederItemProps) => {
      console.log(value);
    },
    (error: any) => {
      console.log(error);
    }
  );
};

Opens the Android ringtone picker.

RingtoneManager.setRingtone()

const setRingtone = () => {
  RingtoneManager.setRingtone(
    uri,
    RingtoneManager.TYPE_ALL,
    (value) => {
      console.log(value);
    },
    (err) => {
      console.log(err);
    }
  );
};

set the Ringtone.

Keywords

FAQs

Last updated on 26 Mar 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc