【问题标题】:How to ask permission or automatically set the phone's full screen on settings - android studio如何在设置中请求权限或自动设置手机的全屏 - android studio
【发布时间】:2020-08-17 06:35:52
【问题描述】:
我正在尝试使用以下代码将我的活动设置为全屏:
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
但由于设置条件 -> 显示某些手机需要允许应用程序使用全屏模式,我在某些手机上看到黑色导航栏。为了解决这个问题,我决定在活动膨胀时实施权限检查器。如果有其他方法请告诉我,我会尽力实现。
编辑:
这是我正在谈论的手机条件的链接:
https://www.gottabemobile.com/how-to-enable-full-screen-apps-on-galaxy-s10/
【问题讨论】:
标签:
android
permissions
fullscreen
android-permissions
【解决方案1】:
这个问题发生在我的 2 个不同的设备上,这是因为前置摄像头缺口或屏幕切口。
我在 oncreate() 中使用了这段代码:
hideSystemUI();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
getWindow().getAttributes().layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; }
或者在主题样式xml文件中添加这一行:
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
【解决方案2】:
在你的清单文件中放
android:theme="@style/Theme.Design.NoActionBar"
或
android:theme="@style/AppTheme"
并在您的活动中致电hideSystemUI();在设置内容视图之前
像这样:
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
getWindow().getDecorView().setSystemUiVisibility(flags);
setContentView(R.layout.activity_main);