android - RingtoneManager displays phone ringtone instead of notification sound -


i use simple picker dialog let user choose notification sound, here's code start picker:

 intent intent = new intent(ringtonemanager.action_ringtone_picker);  intent.putextra(ringtonemanager.extra_ringtone_type, ringtonemanager.type_notification | ringtonemanager.type_alarm);  intent.putextra(ringtonemanager.extra_ringtone_title, getstring(r.string.selectsound));  intent.putextra(ringtonemanager.extra_ringtone_show_default, true);  intent.putextra(ringtonemanager.extra_ringtone_existing_uri, uri.parse(localcfg.getnotificationsound()));  startactivityforresult(intent, select_ringtone_request); 

the localcfg.getnotificationsound() checks setting inside sharedpreferences , returns default notification sound uri in case setting not yet exist:

    public static string getnotificationsound() {     return mprefs.getstring(key_pref_notify_sound_uri, ringtonemanager.getdefaulturi(ringtonemanager.type_notification).tostring()); } 

issue observed on phones tested: "default" sound listed not notification/alarm sound, actual phone ringtone (system default or custom set user).

some phones (samsung galaxy young, xperia z1 compact) display "default notification sound" (which wrong), others (nexus devices, sdk 22) "default ringtone".

why happening if explicitly pass ringtonemanager.type_notification | ringtonemanager.type_alarm flags?

use ringtonemanager.extra_ringtone_default_uri extra:

intent intent = new intent(ringtonemanager.action_ringtone_picker); intent.putextra(ringtonemanager.extra_ringtone_type, ringtonemanager.type_notification | ringtonemanager.type_alarm); intent.putextra(ringtonemanager.extra_ringtone_title, getstring(r.string.selectsound)); intent.putextra(ringtonemanager.extra_ringtone_show_default, true); intent.putextra(ringtonemanager.extra_ringtone_default_uri, ringtonemanager.getdefaulturi(ringtonemanager.type_notification)); intent.putextra(ringtonemanager.extra_ringtone_existing_uri, uri.parse(localcfg.getnotificationsound())); startactivityforresult(intent, select_ringtone_request); 

Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -