浅析Android Service中实现弹出对话框的坑
程序员文章站
2022-06-19 23:26:12
一、手机版本问题,大多数文章没有涉及这个点,导致他们的代码并无法正常使用m版本以上需要使用的type--> type_application_overlayalertdialog.builder...
一、手机版本问题,大多数文章没有涉及这个点,导致他们的代码并无法正常使用
m版本以上需要使用的type--> type_application_overlay
alertdialog.builder builder=new alertdialog.builder(getapplicationcontext()); builder.settitle("提示"); builder.setmessage("service弹框"); builder.setnegativebutton("明白了",null); dialog dialog=builder.create(); if (build.version.sdk_int >= build.version_codes.m){//6.0 dialog.getwindow().settype(windowmanager.layoutparams.type_application_overlay); }else { dialog.getwindow().settype(windowmanager.layoutparams.type_system_alert); } dialog.show();
同时,因为涉及不同版本的android系统
androidmanifest.xml 中声明同时需要这两个类型对应的权限
<uses-permission android:name="android.permission.system_alert_window"/> <uses-permission android:name="android.permission.system_overlay_window" />
二、权限问题,service中弹出的对话框为系统弹框,在m版本以上需要申请悬浮窗权限
android 6.0 以前悬浮窗是默认允许的
注意android 6.0以后的使用
因为悬浮窗权限 system_alert_window
属于特殊权限 ,需要自己特别单独申请
特殊权限,顾名思义,就是一些特别敏感的权限,在android系统中,主要由两个
system_alert_window(设置悬浮窗,进行一些黑科技)
write_settings (修改系统设置)
关于上面两个特殊权限的授权,做法是使用startactivityforresult启动授权界面来完成。
申请方式:
private static final int request_code = 1; private void requestalertwindowpermission() { intent intent = new intent(settings.action_manage_overlay_permission); intent.setdata(uri.parse("package:" + getpackagename())); startactivityforresult(intent, request_code); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == request_code) { if (build.version.sdk_int >= build.version_codes.m) { if (settings.candrawoverlays(this)) { log.i("xqxinfo", "onactivityresult granted"); } } } }
总结
到此这篇关于浅析android service中实现弹出对话框的坑的文章就介绍到这了,更多相关service实现弹出对话框内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 玩游戏的时候为什么电脑出现了卡机
下一篇: 定位-相对定位
推荐阅读
-
浅析Android Service中实现弹出对话框的坑
-
Android实现音乐播放进度条传递信息的两种方式(在service和activity中)
-
android 对话框弹出位置和透明度的设置具体实现方法
-
Android编程实现AlertDialog自定义弹出对话框的方法示例
-
详解Android 8.1.0 Service 中 弹出 Dialog的方法
-
Android中实现长按照片弹出右键菜单功能的实例代码
-
浅谈Service中实现弹出对话框的坑
-
浅析Android Service中实现弹出对话框的坑
-
Android实现音乐播放进度条传递信息的两种方式(在service和activity中)
-
Android编程实现AlertDialog自定义弹出对话框的方法示例