Androidpermissiondeniedforwindowtype2002
Android6.0以上使⽤WindownManager实现悬浮窗会出现如图错误信息,这个是因为在Android6.0以上我们需要去打开授权应⽤ACTION_MANAGE_OVERLAY_PERMISSION 权限才可以正常使⽤悬浮窗。 这样我们就可以在Android6.0以上的机器中使⽤悬浮窗的效果了。@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(getApplicationContext())) {
//启动Activity 让⽤户授权
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent,100);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data ) {
super .onActivityResult (requestCode , resultCode , data );
if (requestCode == 100){
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .M ) {
if (Settings .canDrawOverlays (this )) {安卓intent用法
WindowManager windowManager = (WindowManager ) getSystemService (WINDOW_SERVICE );
WindowManager .LayoutParams params = new WindowManager .LayoutParams ();
params .type = WindowManager .LayoutParams .TYPE_PHONE ;
params .format = PixelFormat .RGBA_8888;
windowManager .addView (view ,params );
}else {
Toast .makeText (this ,"ACTION_MANAGE_OVERLAY_PERMISSION 权限已被拒绝",Toast .LENGTH_SHORT ).show ();;
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论