1

着信音を変更するための Android アプリケーションを開発しました。それは非常にうまく機能しますが、1つ気になることがあります。

着信音を通知音に設定すると、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);
4

1 に答える 1

2

root として実行しない限り、これを行うことはできません。

ストック MMS/SMS アプリケーションで使用される着信音は、独自の shared_preferences に保存されます。すべての shared_preference はその所有者のみがアクセスできるため (root でない限り、これは Android によって強制されます)、単純に不可能です。

ルート化された電話を持っている場合 (またはエミュレーターを使用している場合) は、自分で調べることができ/data/data/com.android.mms/shared_prefs/com.android.mms_preferences.xmladb shell.

これには、アプリで使用される shared_preferences が含まれてpref_key_ringtoneおり、コンテンツ URI を含むキーも含まれています。

編集:これは確認していませんが、のデフォルト値はSettings.System.DEFAULT_NOTIFICATION_URIpref_key_ringtoneに設定されると思います。これは、再生時にシステムのデフォルトの通知音にルーティングされます。ユーザーがこれを変更していない場合、ソリューションは機能します。

于 2012-03-12T13:26:05.727 に答える