未验证 提交 f7a41536 编写于 作者: S Shuyu Guo 提交者: GitHub

Merge pull request #1192 from haohaozaici/master

修复8.0+悬浮窗权限
......@@ -4,6 +4,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
......@@ -56,8 +57,7 @@ public class WindowActivity extends AppCompatActivity {
@RequiresApi(api = 23)
private void requestAlertWindowPermission() {
Intent intent = new Intent("android.settings.action.MANAGE_OVERLAY_PERMISSION");
intent.setData(Uri.parse("package:" + getPackageName()));
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 1);
}
......
......@@ -2,6 +2,7 @@ package com.example.gsyvideoplayer.utils.floatUtil;
import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Build;
import android.view.View;
import android.view.WindowManager;
......@@ -33,9 +34,15 @@ class FloatPhone extends FloatView {
@Override
public void setView(View view) {
int layout_type;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layout_type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layout_type = WindowManager.LayoutParams.TYPE_PHONE;
}
mLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
mLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
mLayoutParams.type = layout_type;
mLayoutParams.windowAnimations = 0;
mView = view;
}
......
......@@ -2,7 +2,9 @@ package com.example.gsyvideoplayer.utils.floatUtil;
import android.content.Context;
import android.graphics.Point;
import android.os.Build;
import android.provider.Settings;
import android.support.annotation.RequiresApi;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
......@@ -22,16 +24,9 @@ public class Util {
return inflate.inflate(layoutId, null);
}
@RequiresApi(api = Build.VERSION_CODES.M)
public static boolean hasPermission(Context context) {
Boolean result;
try {
Class clazz = Settings.class;
Method canDrawOverlays = clazz.getDeclaredMethod("canDrawOverlays", Context.class);
result = (Boolean) canDrawOverlays.invoke(null, context);
} catch (Exception e) {
result = false;
}
return result;
return Settings.canDrawOverlays(context);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册