使用WindowManager的Android浮动视图在Android 6.0.1(棉花糖)中不起作用

时间:2019-09-24 14:44:43

标签: android android-6.0-marshmallow floating

我的应用程序具有一个浮动视图(在屏幕顶部)。

minSdkVersion为19,targetSdkVersion为29(使用SDK 29编译)。

当android版本高于Nougat(7.0)时,我检查我的应用程序是否正常工作。

但是仅在Android 6.0.1(棉花糖)中它根本不起作用。

这是我的代码的一部分

if (checkDrawOverlayPermission()) {    
     mActivity.runOnUiThread(new Runnable() {
          @Override
          public void run() {
               mWindowManager = (WindowManager) mActivity.getSystemService(WINDOW_SERVICE);
               if (mWindowManager != null) {
                   mWindowManager.addView(mFloatView, mFloatViewLayoutParams);
               }
           }
     });

mFloatView由

制成
mFloatView = inflater.inflate(R.layout.float_view_layout, null);

非常简单的代码。只有一个视图浮动。

我认为这可能与Permission有关。

我需要这样的浮动视图权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

private boolean checkDrawOverlayPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(this)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, REQUEST_CODE_DRAW_OVERLAY_PERMISSION);
        return false;
    } else {
        return true;
    }
}

我向这样的应用授予权限

enter image description here

但是它在Android 6.0.1中不起作用(更具体地说,Galaxy Note 4)。

如果您能给我一个提示,我将非常感激。

感谢您阅读我的问题。

0 个答案:

没有答案