实际上我的硬件后退按钮不起作用。所以我要构建的是一个浮动视图,点击它我可以将后按发送到当前活动(因为我的浮动视图没有聚焦,因此覆盖下的活动是聚焦的)。
所以我能够使用以下代码构建覆盖视图
private void initialiseChatHead()
{
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
chatHead = new ImageView(this);
chatHead.setImageResource(R.drawable.ic_back);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(chatHead, params);
gestureDetector = new GestureDetector(this, new SingleTapConfirm());
setOnTouchListener(params);
}
而且我认为由于它不在重点调度后退键将转到基础活动,但这不起作用。
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
{
Toast.makeText(getApplicationContext(), "I am here", Toast.LENGTH_LONG).show();
v.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
return false;
}
}
在搜索如何做到这一点时,我遇到了这个应用程序,它正在做同样的事情。我认为它为此使用 AccessibilityService 但我不知道如何。任何人都可以指导我如何实现这一点(将新闻发送到底层活动)。谢谢!