我的应用程序具有一个浮动视图(在屏幕顶部)。
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;
}
}
我向这样的应用授予权限
但是它在Android 6.0.1中不起作用(更具体地说,Galaxy Note 4)。
如果您能给我一个提示,我将非常感激。
感谢您阅读我的问题。