小米手机server内部调用alertdialog不显示问题

来源:互联网 发布:淘宝店铺绑定旺旺 编辑:程序博客网 时间:2024/05/01 12:19
 首先自己创建一个方法
AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setTitle("您的账号被其他人登录").setMessage("需要对您强制下线,请确认您的账号安全")                .setPositiveButton("修改密码", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Intent intent=new Intent(PollingService.this, ChangepasswordActivity.class);                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                        startActivity(intent);                    }                }).setNegativeButton("重新登录", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Intent intent=new Intent(PollingService.this, LoginActivity.class);                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                startActivity(intent);            }        });        AlertDialog ad = builder.create();// ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG); //系统中关机对话框就是这个属性        ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);        ad.setCanceledOnTouchOutside(false); //点击外面区域不会让dialog消失        ad.show();
这里我的功能是什么显而易见了,前面的功能是轮询自己的账号异地登录,当轮询到自己的账号被其他人登录时,打开一个dialog,这里就有问题了,小米的真坑
接下来在清单文件加入权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
然而这个权限对于小米来说并没有什么鸟用,接下来运行,你会发现,除了小米,剩下的手机都是能显示这个dialog的,唯独小米不行
那么,接下来
这里需要用户手动开启当前app的悬浮窗权限,因为小米默认是关闭的,需要
设置-其他应用管理-找到你的app-最下面的权限管理-显示悬浮窗,打开之后即可弹出AlertDialog
这是一个头疼的问题,要不然想办法引导用户就手动开启,要不然就干脆不用alertdialog,用一个透明的activity代替alert来弹出,然后实现应有的功能也是个不错的选择
0 0
原创粉丝点击