Android Service中判断系统全屏
1. 空layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > </LinearLayout>
2. java中定义layout变量
mFullScreenCheckView = (LinearLayout) inflater.inflate(R.layout.full_screen_layout, null);
3. 设置Global Layout Listener
private void createFullScreenCheckView() { SecLog.e(TAG, "createFloatView"); WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); layoutParams.type = LayoutParams.TYPE_PHONE; layoutParams.format = PixelFormat.TRANSPARENT; layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE; layoutParams.gravity = Gravity.LEFT | Gravity.TOP; layoutParams.width = 1; layoutParams.height = LayoutParams.MATCH_PARENT; mFullScreenCheckView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){ @SuppressLint("NewApi") @Override public void onGlobalLayout() { DisplayMetrics dm = new DisplayMetrics(); mWindowManager.getDefaultDisplay().getMetrics(dm); int viewHeight = mFullScreenCheckView.getHeight(); if(viewHeight == dm.widthPixels || viewHeight == dm.heightPixels){ bIsFullScreen = true; }else{ bIsFullScreen = false; } } }); mWindowManager.addView(mFullScreenCheckView, layoutParams); }
参考:
1. https://stackoverflow.com/questions/22894108/detect-full-screen-in-android-from-service
2. https://stackoverflow.com/questions/18551135/receiving-hidden-status-bar-entering-a-full-screen-activity-event-on-a-service/19201933#19201933
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。