永久隐藏Android状态栏

dty*_*ler 35 android root android-4.4-kitkat

我正试图在Android 4.4设备上隐藏系统状态栏.这适用于自助服务终端模式,我的应用程序将成为设备上唯一运行的应用程序.目前的目标设备是2013 Nexus 7.

该设备已植根,我已经能够完全删除底部导航栏,其中包含此帖子中的一些信息.

对于顶级状态栏,我尝试过的所有内容都只是暂时隐藏了栏.如果我的用户在屏幕顶部向下移动,状态栏会重新出现.我不想让他们看到时间,进入设置甚至看到通知.

我找到的帖子已经尝试过了:

有什么建议?

理想情况下,我希望能够编辑build.prop来执行此操作,因为我已经在为导航栏执行此操作,并且可以同时执行此操作.我正在尝试不必构建自己的android映像.

更新:

经过一些更多的工作,这似乎在某种程度上取决于android的确切构建,或其运行的设备.

有些设备,例如我一直在使用的Nexus系列,允许用户滑动以重新显示条形图.

但是,我最近在Verizon Eclipse上尝试了这个,并且该栏不再出现,这就是我想要的.

我仍然在寻找一种更好的解决方案来定位所有设备,但它可能会归结为创建我自己的android构建.

Abh*_*aan 29

我们无法阻止在kitkat设备中以全屏模式出现状态,因此制作了仍然符合要求的黑客攻击,即阻止状态栏扩展.

为了工作,应用程序没有全屏显示.我们在状态栏上放置了一个叠加层并消耗了所有输入事件.它阻止了地位的扩大.

注意:

  • customViewGroup是自定义类,可扩展任何布局(框架,相对布局等)并消耗触摸事件.
  • 使用touch事件覆盖视图组的onInterceptTouchEvent方法并返回true

更新

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
Run Code Online (Sandbox Code Playgroud)

customViewGroup实现 代码:

WindowManager manager = ((WindowManager) getApplicationContext()
            .getSystemService(Context.WINDOW_SERVICE));

WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|

            // this is to enable the notification to recieve touch events
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |

            // Draws over status bar
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;

    localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
    localLayoutParams.height = (int) (50 * getResources()
            .getDisplayMetrics().scaledDensity);
    localLayoutParams.format = PixelFormat.TRANSPARENT;

    customViewGroup view = new customViewGroup(this);

    manager.addView(view, localLayoutParams);
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助


D. *_*bbs 19

我知道这是一个古老的问题,但希望它会对某人有所帮助.这里有两个非常简单的调用来禁用和启用我之前使用过的状态栏.可以从命令行使用或由Java应用程序执行:

禁用:

service call activity 42 s16 com.android.systemui
Run Code Online (Sandbox Code Playgroud)

启用:

am startservice -n com.android.systemui/.SystemUIService
Run Code Online (Sandbox Code Playgroud)


dty*_*ler 18

我确实尝试过@gonglong提供的解决方法,但我对结果不满意,因为随着解决方法的推出,UI中出现了闪光.

相反,我能够以root身份执行此操作:

settings put secure user_setup_complete 0
Run Code Online (Sandbox Code Playgroud)

我认为在普通设备上,这会导致初始设备设置启动,但在我的设备上,我已从系统中删除了该APK,因此不会发生.

这在我找不到的任何地方都没有记录,但效果很好,顶级设置UI无法向下拖动.通知区域仍然可以向下拖动.

我觉得有用的另一个设置是:

settings put global device_provisioned 0
Run Code Online (Sandbox Code Playgroud)

这会隐藏Power菜单中的飞行模式和静音模式选项,这对我的应用程序来说是一个额外的好处.

可能会有更多的副作用,但我还没有发现任何重要的事情.

完整清单

此列表取自运行全新Android 4.4.3(KTU84L)的Nexus 7 2013 LTE.方括号中的数字是我拉取db文件时的值,这是在基本设置设备设置和启用开发人员/ USB之后,但在设置中进行任何其他更改之前

这个文件是在 data/data/com.android.providers.settings/databases/settings.db

注意:某些URL需要添加额外的空格字符以绕过SO过滤器

system 命名空间

  • volume_music [11]
  • volume_ring [5]
  • volume_system [7]
  • volume_voice [4]
  • volume_alarm [6]
  • volume_notification [5]
  • volume_bluetooth_sco [7]
  • mode_ringer_streams_affected [174]
  • mute_streams_affected [46]
  • vibrate_when_ringing [0]
  • dim_screen [1]
  • dtmf_tone_type [0]
  • hearing_aid [0]
  • tty_mode [0]
  • screen_brightness [87]
  • screen_brightness_mode [1]
  • window_animation_scale [1.0]
  • transition_animation_scale [1.0]
  • accelerometer_rotation [1]
  • haptic_feedback_enabled [1]
  • notification_light_pulse [1]
  • dtmf_tone [1]
  • sound_effects_enabled [1]
  • lockscreen_sounds_enabled [1]
  • pointer_speed [0]
  • alarm_alert [content:// media/internal/audio/media/11]
  • notification_sound [content:// media/internal/audio/media/27]
  • 铃声[内容:// media/internal/audio/media/35]
  • next_alarm_formatted []
  • radio.data.stall.recovery.action [0]
  • screen_off_timeout [30000]

global 命名空间

  • airplane_mode_on [0]
  • airplane_mode_radios [cell,bluetooth,wifi,nfc,wimax]
  • airplane_mode_toggleable_radios [蓝牙,wifi,nfc]
  • auto_time [1]
  • auto_time_zone [1]
  • stay_on_while_plugged_in [0]
  • wifi_sleep_policy [2]
  • mode_ringer [2]
  • package_verifier_enable [1]
  • wifi_networks_available_notification_on [1]
  • bluetooth_on [0]
  • cdma_cell_broadcast_sms [1]
  • data_roaming [0]
  • mobile_data [1]
  • netstats_enabled [1]
  • install_non_market_apps [0]
  • usb_mass_storage_enabled [1]
  • wifi_max_dhcp_retry_count [9]
  • wifi_display_on [0]
  • lock_sound [/system/media/audio/ui/Lock.ogg]
  • unlock_sound [/system/media/audio/ui/Unlock.ogg]
  • power_sounds_enabled [1]
  • low_battery_sound [/system/media/audio/ui/LowBattery.ogg]
  • dock_sounds_enabled [0]
  • desk_dock_sound [/system/media/audio/ui/Dock.ogg]
  • desk_undock_sound [/system/media/audio/ui/Undock.ogg]
  • car_dock_sound [/system/media/audio/ui/Dock.ogg]
  • car_undock_sound [/system/media/audio/ui/Undock.ogg]
  • wireless_charging_started_sound [/system/media/audio/ui/WirelessChargingStarted.ogg]
  • dock_audio_media_enabled [1]
  • set_install_location [0]
  • default_install_location [0]
  • emergency_tone [0]
  • call_auto_retry [0]
  • preferred_network_mode [9]
  • subscription_mode [1]
  • low_battery_sound_timeout [3600000]
  • wifi_watchdog_on [1]
  • audio_safe_volume_state [1]
  • send_action_app_error [1]
  • web_autofill_query_url [http:// android.clients.google.com/proxy/webautofill]
  • sms_short_codes_content_url [ http://www.gstatic.com/android/config_update/07172013-sms-blacklist.txt]
  • sms_short_codes_metadata_url [ http://www.gstatic.com/android/config_update/07172013-sms-metadata.txt]
  • cert_pin_metadata_url [ http://www.gstatic.com/android/config_update/10142013-metadata.txt]
  • cert_pin_content_url [ http://www.gstatic.com/android/config_update/10142013-pins.txt]
  • wifi_on [1]
  • assisted_gps_enabled [1]
  • wifi_scan_always_enabled [1]
  • device_provisioned [1]
  • bugreport_in_power_menu [0]
  • development_settings_enabled [1]
  • adb_enabled [1]
  • wifi_country_code [us]

secure 命名空间

  • wifi_watchdog_watch_list [GoogleGuest]
  • mock_location [0]
  • backup_enabled [0]
  • backup_transport [com.google.android.backup/.BackupTransportService]
  • mount_play_not_snd [1]
  • mount_ums_autostart [0]
  • mount_ums_prompt [1]
  • mount_ums_notify_enabled [1]
  • accessibility_script_injection [0]
  • accessibility_web_content_key_bindings [0x13 = 0x01000100; 0×14 = 0x01010100; 为0x15 = 0x02000001; 0x16 = 0x02010001; 0x200000013 = 0x02000601; 0x200000014 = 0x02010601; 0x200000015 = 0x03020101; 0x200000016 = 0x03010201; 0x200000023 = 0x02000301; 0x200000024 = 0x02010301; 0x200000037 = 0x03070201; 0x200000038 = 0x03000701:0x03010701:0x03020701]
  • long_press_timeout [500]
  • touch_exploration_enabled [0]
  • speak_password [0]
  • accessibility_script_injection_url [ https://ssl.gstatic.com/accessibility/javascript/android/AndroidVox_v1.js]
  • lockscreen.disabled [0]
  • screensaver_enabled [1]
  • screensaver_activate_on_dock [1]
  • screensaver_activate_on_sleep [0]
  • screensaver_components [com.google.android.deskclock/com.android.deskclock.Screensaver]
  • screensaver_default_component [com.google.android.deskclock/com.android.deskclock.Screensaver]
  • accessibility_display_magnification_enabled [0]
  • accessibility_display_magnification_scale [2.0]
  • accessibility_display_magnification_auto_update [1]
  • android_id [a0ef8b2a9ade982c]
  • enabled_input_methods [com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME:com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService]
  • input_methods_subtype_history []
  • selected_input_method_subtype [-1]
  • selected_spell_checker [com.google.android.inputmethod.latin/com.android.inputmethod.latin.spellcheck.AndroidSpellCheckerService]
  • selected_spell_checker_subtype [0]
  • lock_screen_owner_info_enabled [0]
  • voice_recognition_service [com.google.android.googlequicksearchbox/com.google.android.voicesearch.serviceapi.GoogleRecognitionService]
  • default_input_method [com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME]
  • enabled_print_services [com.google.android.apps.cloudprint/com.google.android.apps.cloudprint.printdialog.services.CloudPrintService:com.hp.android.printservice/com.hp.android.printservice.ServiceAndroidPrint]
  • enabled_on_first_boot_system_print_services [com.google.android.apps.cloudprint/com.google.android.apps.cloudprint.printdialog.services.CloudPrintService:com.hp.android.printservice/com.hp.android.printservice.ServiceAndroidPrint]
  • bluetooth_name [Nexus 7]
  • masterLocationPackagePrefixBlacklist [com.google.,com.semaphoremobile.zagat.android]
  • serial_blacklist [827,864]
  • dropbox:data_app_anr [disabled]
  • dropbox:data_app_wtf [disabled]
  • ssl_session_cache [文件]
  • pubkey_blacklist [5f3ab33d55007054bc5e3e5553cd8d8465d77c61,783333c9687df63377efceddd82efa9101913e8e]
  • facelock_liveliness_recognition_threshold [2.2]
  • facelock_detection_threshold [0.0]
  • dropbox:data_app_crash [disabled]
  • masterLocationPackagePrefixWhitelist [com.google.android.gms]
  • lockscreen.options [enable_facelock]
  • facelock_max_center_movement [10.0]
  • bluetooth_address [AC:22:0B:A5:AF:3D]
  • bluetooth_addr_valid [1]
  • config_update_certificate [ 截断的base64内容 ]
  • location_providers_allowed [gps,network]
  • allowed_geolocation_origins [ http://www.google.co.uk http:// www.google.com]
  • locationPackagePrefixBlacklist []
  • user_setup_complete [1]
  • locationPackagePrefixWhitelist []
  • last_setup_shown [eclair_1]


小智 -1

在之前添加:setContentView(R.layout.x);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                 
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.x);
Run Code Online (Sandbox Code Playgroud)

  • @portfoliobuilder,您能提供一个示例解决方案吗? (5认同)
  • 这是我首先尝试的事情之一,但它不能满足我的需要。这只是暂时隐藏该栏,如果用户从屏幕顶部向下滑动,该栏会重新出现,这对我不起作用。 (2认同)