Мое приложение имеет плавающее представление (в верхней части экрана).
minSdkVersion равно 19, а targetSdkVersion - 29 (скомпилировано с SDK 29).
Я проверяю, работает ли мое приложение, когдаверсия для Android выше, чем Nougat (7.0).
Но только в Android 6.0.1 (Marshmallow) она вообще не работает.
Вот часть моего кода
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);
Очень простой код.Только одно представление плавает.
Я думаю, что оно может быть относительным с разрешением.
Мне требуется разрешение для плавающего вида, подобного этому
<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).
Я буду очень признателен, если вы дадите мне только один намек.
Спасибо, что прочитали мой вопрос.