0
有沒有辦法阻止從服務的任何應用程序的觸摸?我一直在想getWindow()
,但這在服務中是不可能的。此外,我一直在考慮獲取當前活動,然後使用getWindow()
。我希望你明白我試圖達成的目標。從服務塊觸摸
有沒有辦法阻止從服務的任何應用程序的觸摸?我一直在想getWindow()
,但這在服務中是不可能的。此外,我一直在考慮獲取當前活動,然後使用getWindow()
。我希望你明白我試圖達成的目標。從服務塊觸摸
感謝David Medenjak我設法解決了這個問題。該解決方案正在研究23以下的Android API,並且它將使屏幕變黑並阻止觸摸,直到您在屏幕上長按。
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
ImageView black = new ImageView(this);
black.setImageResource(R.drawable.black);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 0;
windowManager.addView(black, params);
black.getLayoutParams().height = windowManager.getDefaultDisplay().getHeight();
black.getLayoutParams().width = windowManager.getDefaultDisplay().getWidth();
black.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
您可以使用'WindowManager'在頂部添加一個視圖,並自己消耗所有的點擊次數。這就是那些「屏幕鎖定」應用程序的做法。 –
好主意。謝謝!我得到這個_無法添加窗口android.view.ViewRootImpl$[email protected] - 權限被拒絕這個窗口type_。當我嘗試在Android API> = 23的設備上將視圖添加到「WindowManager」時發生錯誤。 – jelic98