2012-03-03 2 views
1

나는 벨소리를 변경하기위한 안드로이드 애플리케이션을 개발했다. 그것은 아주 잘 작동하지만, 한가지는 저를 귀찮게합니다.현재 SMS 톤 설정에도 불구하고 Android SMS 톤을 변경하려면 어떻게해야합니까?

알림 음으로 벨소리를 설정하면 SMS 메시지를받을 때 재생됩니다. 그러나 SMS 설정에서 이전에 사용자 지정 SMS 톤 (즉, "기본 벨소리"이외의 다른 것)을 선택한 경우 SMS를 수신 할 때 새로운 알림 신호음이 재생되지 않습니다.

누군가가 Android 마켓에서 벨소리 앱을 설치하고 알림 음을 설정하며 SMS 수신시 선택한 알림이 재생되지 않기 때문에 실망하게 될 수 있습니다. 이 솔루션은 매우 쉽습니다 (SMS -> 설정 -> 벨소리 선택 -> 기본 벨소리). 그러나 그가 이것을 모르는 경우에는 정말 귀찮습니다. 루트로 그것을하지 않는

values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
values.put(MediaStore.Audio.Media.IS_ALARM, true); 

.....

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, persistentUri); 

답변

1

당신은이 작업을 수행 할 수 없습니다

이 나는 ​​알림 음을 설정하는 데 사용할 것입니다.

재고 MMS/SMS 응용 프로그램에서 사용하는 벨소리는 자체 shared_preferences에 저장됩니다. 모든 shared_preference는 소유자 만 액세스 할 수 있으므로 (루트가 아니라면 안드로이드에 의해 적용됩니다) 단순히 불가능합니다.

휴대 전화가 있거나 (에뮬레이터 만 사용하는 경우) 기기에서 /data/data/com.android.mms/shared_prefs/com.android.mms_preferences.xml을보고 adb shell을 통해 직접 확인할 수 있습니다.

여기에는 앱에서 사용하는 shared_preferences가 포함되어 있으며 콘텐츠 URI가 포함 된 pref_key_ringtone 키가 포함되어 있습니다.

편집 : 나는 이것을 확인하지 않았지만 pref_key_ringtone의 기본값은 Settings.System.DEFAULT_NOTIFICATION_URI으로 설정됩니다. 재생하면 시스템 기본 알림 사운드로 라우팅됩니다. 사용자가 변경하지 않으면 솔루션이 작동합니다.

+1

내 의문에 대답하고 제거해 주셔서 감사합니다. 휴대 전화에서 pref_key_ringtone 환경 설정을 확인했는데 기본적으로 "content : // settings/system/notification_sound"이며 알림 소리가 변경되면 변경됩니다. 너는 17 시간 안에 너의 현상금을 얻을 것이다 (명백하게 동일한 날에 대답을 수여 할 수 없다.) – miq

+0

너는 어떻게 너는 고시를 변화 시켰 는가, 나는 동일한 문제점을 있고있다. – Aziz

+0

위에서 언급했듯이 시스템은 이러한 "권한 파기"를 허용하지 않기 때문에 루트 권한으로해야합니다 (이는 좋은 일이지만 때로는 최상의 사용자 경험이 아닙니다). 정말로 이것을 원할 때 root로'sqlite3' 바이너리를 호출하고 작업을해야 할 것입니다. – Luminger