|
7 | 7 | import android.graphics.Color; |
8 | 8 | import android.graphics.Point; |
9 | 9 | import android.os.Build; |
| 10 | +import android.provider.Settings; |
10 | 11 | import android.support.annotation.ColorInt; |
11 | 12 | import android.support.annotation.NonNull; |
12 | 13 | import android.support.annotation.RequiresApi; |
13 | 14 | import android.support.annotation.RequiresPermission; |
14 | 15 | import android.support.v4.widget.DrawerLayout; |
| 16 | +import android.text.TextUtils; |
15 | 17 | import android.util.TypedValue; |
16 | 18 | import android.view.Display; |
17 | 19 | import android.view.KeyCharacterMap; |
@@ -565,9 +567,26 @@ public static boolean isNavBarVisible(@NonNull final Window window) { |
565 | 567 | } |
566 | 568 | } |
567 | 569 | if (isVisible) { |
| 570 | + |
| 571 | + // 对于三星手机,android10以下非OneUI2的版本,比如 s8,note8 等设备上,导航栏显示存在bug:"当用户隐藏导航栏时显示输入法的时候导航栏会跟随显示",会导致隐藏输入法之后判断错误 |
| 572 | + // 这个问题在 OneUI 2 & android 10 版本已修复 |
| 573 | + String manufacturer = ""; |
| 574 | + if (!TextUtils.isEmpty(Build.MANUFACTURER )){ |
| 575 | + manufacturer = Build.MANUFACTURER.trim(); |
| 576 | + } |
| 577 | + if (manufacturer.toLowerCase().contains("samsung") |
| 578 | + && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { |
| 579 | + try { |
| 580 | + return Settings.Global.getInt(window.getContext().getContentResolver(), "navigationbar_hide_bar_enabled") == 0; |
| 581 | + } catch (Exception e) { |
| 582 | + //nothing to do |
| 583 | + } |
| 584 | + } |
| 585 | + |
568 | 586 | int visibility = decorView.getSystemUiVisibility(); |
569 | 587 | isVisible = (visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0; |
570 | 588 | } |
| 589 | + |
571 | 590 | return isVisible; |
572 | 591 | } |
573 | 592 |
|
|
0 commit comments