私はAndroid用のアプリを開発しています。特定の条件が満たされたときに呼び出される ringtone というメソッドがあります。大きな音を作成し、その音を消すダイアログ ボックスを作成したいと考えていました。私のコード:
public void ringtone() {
AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
manager.setStreamVolume(AudioManager.STREAM_RING, 10, AudioManager.FLAG_SHOW_UI);
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
final Ringtone r= RingtoneManager.getRingtone(getApplicationContext(), notification);
AlertDialog alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
alertDialog.setTitle("We Detected You Were Asleep");
alertDialog.setMessage("WAKE UP!");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "I am Awake", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
r.stop();
}
});
r.play();
alertDialog.show();
}
アプリを実行すると、着信音の音量が変わりますが、着信音が再生されません。ただし、ダイアログ ボックス ビルダーをコメント アウトすると、着信音が鳴ります。したがって、私の結論は、コードの続行を許可していないダイアログ ボックス ビルダー内に何か問題があるということです。