如何在未经许可的情况下显示浮动window?
how to display floating window without permission?
我尝试使用 WindowManger 在 android 10 / Core M01 中显示浮动 window,但我无法获得“通过应用程序显示”权限:-
我尝试使用“WindowManager.LayoutParams.TYPE_TOAST”和“WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY”以及“WindowManager.LayoutParams.TYPE_PHONE”,但对我没有任何作用。
我收到错误消息:“BadTokenException:无法添加 window -- 令牌 null 无效;您的 activity 运行 是吗?”当我使用 TYPE_TOAST 并且权限错误是其他类型时。
这个应用程序在没有获得许可的情况下也能正常工作:Mouse Cursor Touchpad,以及许多应用程序,如 universal Copy、Mobizen..etc
如何解决?
我用WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY修复了它
在无障碍服务中
public class MyService extends AccessibilityService {
@Override
protected void onServiceConnected() {
Context ctx=(Context)this;
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams wLP = new WindowManager.LayoutParams();
wLP.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
//....etc
}
}
我尝试使用 WindowManger 在 android 10 / Core M01 中显示浮动 window,但我无法获得“通过应用程序显示”权限:-
我用WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY修复了它 在无障碍服务中
public class MyService extends AccessibilityService {
@Override
protected void onServiceConnected() {
Context ctx=(Context)this;
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams wLP = new WindowManager.LayoutParams();
wLP.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
//....etc
}
}