我正在创建一个实现远程的应用程序。遥控器上的其中一个按钮可以上下调节音量。我在遥控器上有这个按钮做了一些不同的事情,因为在我的应用程序中调整音量是无关紧要的。所以,我的问题是:
是否可以在应用程序本身或设备的固件中禁用本机Toast消息。我正在将我的应用程序构建到自定义ROM中,因此我应该可以完全访问toast消息吗?
答案 0 :(得分:2)
看一下AudioManager-> FLAG_SHOW_UI 如果你不想显示本地吐司,请不要使用此标志。 adjustStreamVolume的示例
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_SAME, flags);
编辑: 您还可以收听硬音量按钮操作
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
//set Volume without toast flag
}
return true;
}
答案 1 :(得分:1)
你说你正在构建自定义ROM的应用程序,所以我建议你看看: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/media/AudioManager.java#AudioManager.handleKeyDown%28android.view.KeyEvent%2Cint%29
我相信在你的ROM中修补这个功能(例如清空它的身体)可以摆脱所有的吐司。
答案 2 :(得分:0)
Toast customToast = new Toast(getBaseContext());
customToast = Toast.makeText(getBaseContext(), val, Toast.LENGTH_LONG);
customToast.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);
customToast.show();
答案 3 :(得分:0)
要覆盖toast消息,弹出窗口可以像这样使用:
Toast mToast = Toast.makeText( this , "" , Toast.LENGTH_SHORT );
switch(id)
{
case 0:
mToast.setText( "Volume UP" );
mToast.setGravity(Gravity.TOP | Gravity.TOP, 0, 0);
mToast.show();
break;
case 1:
mToast.setText( "Stop" );
mToast.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);
mToast.show();
break;
case 2:
mToast.setText( "Volume Down" );
mToast.setGravity(Gravity.END | Gravity.END, 0, 0);
mToast.show();
break;
}
}
});
答案 4 :(得分:0)
Toast CustomToast = new Toast(getBaseContext());
CustomToast = Toast.makeText(getBaseContext(), val, Toast.LENGTH_LONG);
CustomToast.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);
CustomToast.show();
答案 5 :(得分:0)