lijianqiang12
5/29/2017 - 1:18 PM

显示悬浮窗

显示悬浮窗

if (Build.VERSION.SDK_INT >= 23) {
      if (!Settings.canDrawOverlays(MainActivity.this)) {
        Toast.makeText(MainActivity.this, "程序需要悬浮窗权限才可使用,请打开", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, 1234);
      }
    }
  }
<!-- 显示顶层浮窗 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
//Android O无法显示
WindowManager wm = (WindowManager) getApplicationContext().getSystemService
                            (Context.WINDOW_SERVICE);
                    WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
                    wmParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
                    wmParams.format = PixelFormat.OPAQUE;
                    wmParams.flags = WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                            | WindowManager.LayoutParams.FLAG_FULLSCREEN
                            | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                            | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
                    wm.addView(v, wmParams);