Я использую https://github.com/millerbennett/react-native-ringtone-manager
Но, к сожалению, RingtoneManager.getRingtones (RingtoneManager.TYPE_ALL) всегда возвращает 'undefined'.
У меня нет ошибки, кто-нибудь знает что-нибудь об этой проблеме?
Я использую эмулятор, но вижу, что в параметрах присутствуют рингтоны.
EDIT
Я вернулся к этой проблеме.
Я не понимаю, почему это не работает.
Я прочитал https://github.com/millerbennett/react-native-ringtone-manager и сравни с кодом менеджера и не нашел никаких проблем.
Фактически сам объект RingtoneManager помечен undefined .
EDIT
Так вот мой код:
import React from 'react';
import { Text, View} from 'react-native';
import RingtoneManager from 'react-native-ringtone-manager';
export default class FormRingtones extends React.Component {
static navigationOptions = {
title: 'Rings',
};
constructor(props) {
super(props);
}
rings;
componentDidMount() {
this.getRings();
}
getRings() {
console.log("1 : " + RingtoneManager);
this.rings = RingtoneManager.getRingtones(RingtoneManager.TYPE_ALL);
if(this.rings != null) {this.rings = this.rings.map((item,index) =>{<Text>{item.title}</Text>})};
console.log("2 " + this.rings.length);
}
render() {
return (
<View>
<View >
{this.rings}
</View>
</View>
)
};
}
Я только что установил последнюю версию, как упомянуто в комментарии, и теперь приложение показывает приятную ошибку 'Unkown' и ничего больше в инструментах отладки ...
Очистка кеша и перезапуск всех инструментов спасли меня.
Но теперь у меня есть [объект Object] для RingtoneManager и undefined для колец ...
Спасибо за вашу помощь.
EDIT
Извините, у меня нет времени публиковать свое решение раньше.
Проблема в том, что getRingtones () просто пуста в реакции-нативном-рингтоне-менеджере .... это довольно раздражает, когда вы устанавливаете этот компонент только для этого.
Ну, что я сделал:
В node_modules \ реагировать-нативный-рингтон-менеджер \ android \ src \ main \ java \ com \ реагировать на библиотеку , в RNRingtoneManagerModule.java :
@ReactMethod
public void getRingtones(Callback successCallback) {
getRingsByType(RingtoneManager.TYPE_ALL, successCallback);
}
@ReactMethod
public void getRingsByType(int ringtoneType, Callback successCallback) {
RingtoneManager manager = new RingtoneManager(this.reactContext);
manager.setType(ringtoneType);
Cursor cursor = manager.getCursor();
WritableMap data = Arguments.createMap();
while (cursor.moveToNext()) {
String notificationTitle = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX);
Uri notificationUri =Uri.parse(cursor.getString(RingtoneManager.URI_COLUMN_INDEX) + "/" + cursor.getString(RingtoneManager.ID_COLUMN_INDEX));
data.putString(notificationTitle, notificationUri);
}
successCallback.invoke(data);
}
А теперь все работает нормально, я могу перечислить мелодии звонка по типу, воспроизводить их звук и т. Д. *
Это первый раз в моей жизни, когда я устанавливаю что-то, что я должен написать после:)