我正在为Android开发一款应用。我有一个叫做铃声的方法,在满足某些条件时调用。我想创建一个lound声音并创建一个对话框来消除声音。 我的代码:
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();
}
当我运行我的应用时,铃声音量会改变,但铃声不会播放。但是,当我注释掉对话框构建器时,铃声响起。所以我的结论是对话框构建器中存在一些错误,它不允许代码继续。
答案 0 :(得分:0)
我多次想知道自己:我的对话框显示在当前屏幕外的活动中。
解决方案:您需要使用活动的上下文创建构建器,对话框应显示为。
我已经使用另一个活动(我的共享主活动)的上下文创建了构建器,这是错误的。
现在,在您的情况下,您可能需要创建并显示半透明活动,您可以在其中显示对话框。创建半透明活动只是清单文件中的一些设置。