Вы можете создать мелодию звонка в своем приложении и использовать ее при получении любого уведомления и воспроизводить мелодию звонка в соответствии с этим. ниже приведен код для установки мелодии звонка для вашего приложения
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(ringTonePref.getRingtoneType());
String defaultRingtone = defaultRingtoneUri.toString();
String selectedRingtone = ringTonePref.getPreferenceManager().getSharedPreferences()
.getString(NOTIFICATION_RINGTONE,defaultRingtone);
if (defaultRingtone.equals(selectedRingtone)) {
ringtoneUri = defaultRingtoneUri;
} else {
ringtoneUri = (TextUtils.isEmpty(selectedRingtone)) ? null : Uri.parse(selectedRingtone);
}
updateRingtoneSummary(ringTonePref, ringtoneUri);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(ringTonePref.getRingtoneType());
String defaultRingtone = defaultRingtoneUri.toString();
String selectedRingtone = ringTonePref.getPreferenceManager().getSharedPreferences()
.getString(NOTIFICATION_RINGTONE,defaultRingtone);
if (defaultRingtone.equals(selectedRingtone)) {
ringtoneUri = defaultRingtoneUri;
} else {
ringtoneUri = (TextUtils.isEmpty(selectedRingtone)) ? null : Uri.parse(selectedRingtone);
}
updateRingtoneSummary(ringTonePref, ringtoneUri);
super.handleMessage(message);
}
};
ringTonePref.setOnPreferenceChangeListener(new OnPreferenceChangeListener (){
public boolean onPreferenceChange(Preference arg0, Object arg1) {
handler.sendEmptyMessage(UPDATE_RINGTONE_SUMMARY);
return true;
}
});
}
private void updateRingtoneSummary(RingtonePreference ringtonePreference, final Uri ringtoneUri) {
// Set the summary
if (ringtoneUri == null) {
// The ringtone picker returns null for "silent" ringtone
ringtonePreference.setSummary(R.string.silent);
} else {
Ringtone ringtone = RingtoneManager.getRingtone(this, ringtoneUri);
if (ringtone != null) {
ringtonePreference.setSummary(ringtone.getTitle(this));
}
}
}
файл preference.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/notificationsettings">
<RingtonePreference
android:key="pref_key_ringtone"
android:title="@string/title_list_preference"
android:dialogTitle="@string/title_list_preference"
android:defaultValue="content://settings/system/notification_sound"
android:ringtoneType="notification" />
<CheckBoxPreference
android:key="pref_key_vibrate"
android:title="@string/vibrate"
android:defaultValue="true"/>
</PreferenceCategory>
</PreferenceScreen>