SMS
やりたいこと: に別の着信音があるのに着信音を設定するにはSMS app
。
試したこと:SMS reciever
で、音量を に設定STREAM_NOTIFICATION to 0
し、 を介して着信音をメディアとして再生しようとしましたMediaPlayer
。
したがって、基本的には次のようなものです。
am.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0, 0);
MediaPlayer mp = MediaPlayer.create(context, notifUri);
mp.start();
int duration = mp.getDuration() + 3000; //Margin
try {
Thread.sleep(duration);
} catch (InterruptedException e) {
}
am.setStreamVolume(AudioManager.STREAM_NOTIFICATION, beforOverrideNotifVol, 0);
何が起こったのか: カスタムの着信音は再生されましたが、その直後にsms-app
サウンドも鳴りました。スレッドにスリープを追加しようとしましたが (SMS アプリをバックグラウンドで再生できるようにするため)、音量が回復するのを待ってから着信音を再生します。
最初に私はこれを試しました:
RingtoneManager.setActualDefaultRingtoneUri(...)
ただし、アプリの設定は上書きされません。SMS アプリで着信音が選択されたときの通知音のみが上書きされます。