解决联想pad 升级 Android 11 导致浮窗权限无法获取的bug
This commit is contained in:
@@ -3,4 +3,5 @@
|
||||
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
|
||||
<uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>
|
||||
</manifest>
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -143,11 +144,13 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
}
|
||||
//申请悬浮窗权限
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if(Settings.canDrawOverlays(this)){
|
||||
// 检查是否有悬浮窗权限
|
||||
if (Settings.canDrawOverlays(this)) {
|
||||
return;
|
||||
}
|
||||
Intent intent=new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
||||
startActivityForResult(intent, REQUEST_CODE_DIALOG);
|
||||
// Intent intent=new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
||||
// startActivityForResult(intent, REQUEST_CODE_DIALOG);
|
||||
openAppDetails("显示悬浮窗");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -465,7 +468,7 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
} else {
|
||||
// 弹出对话框告诉用户需要权限的原因, 并引导用户去应用权限管理中手动打开权限按钮
|
||||
if (!isFirst) {
|
||||
openAppDetails();
|
||||
openAppDetails(null);
|
||||
isFirst = true;
|
||||
}
|
||||
}
|
||||
@@ -475,9 +478,13 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
/**
|
||||
* 打开APP的详情设置
|
||||
*/
|
||||
private void openAppDetails() {
|
||||
private void openAppDetails(String msg) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage("请在 “应用信息 -> 权限” 中授予权限");
|
||||
if (TextUtils.isEmpty(msg)) {
|
||||
builder.setMessage("请在 “应用信息 -> 权限” 中授予权限");
|
||||
} else {
|
||||
builder.setMessage("请在 “应用信息 -> 权限” 中授予【" + msg + "】权限");
|
||||
}
|
||||
builder.setPositiveButton("手动授权", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
Reference in New Issue
Block a user