在Android6.0之后,悬浮窗权限需要手动申请
1.手动判断权限是否存在
if (Settings.canDrawOverlays(MainActivity.this))
{
Intent intent = new Intent(MainActivity.this,MyService.class);
startService(intent);
finish();
}else
{
//若没有权限,提示获取.
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
Toast.makeText(MainActivity.this,"需要取得权限以使用悬浮窗",Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}
遇到的问题:当获取到权限后,悬浮窗可以正常开启,禁掉权限后,悬浮窗没有了,但是videoView还在播放,效果很是难看。
(后期有看微信视频聊天的悬浮窗,在正在视频时,对权限进行操作也会出现这种问题,所以该问题就搁置了)这种操作一般人不会做,除非是专门的测试人员可能会有如此另类的操作吧。
建议(在每次开窗之前对悬浮窗进行判断,体验会好一点)
处理方案:
开启一条线程,一直判断权限是否存在,如果在,则显示VideoView,否则,隐藏VideoView
//子线程中检测权限 thread = new Thread(new Runnable() {