Android Question Kiosk

billyrudi

Active Member
Licensed User
Longtime User
Hi Erel,
i have some galaxy tab 2 p3100 .
There is a way to create a kiosk application that disable all tablet launch bar?
tank you Paolo
 

Informatix

Expert
Licensed User
Longtime User
Hello Informatix. Thanks for the tip but : if we create a fullscreen app to replace the home launcher, when an "normal" (not full screen) app runs, the notification bar is again accessible. In the case of the mentioned app, I can swipe my finger from the top of the screen, nothing opens.
It's done via the StatusBarManager class I presume (untested).
 
Upvote 0

Informatix

Expert
Licensed User
Longtime User
For your app and only your app, you could do that:
B4X:
Sub Activity_WindowFocusChanged (Focused As Boolean)
    If Not(Focused) Then
        Dim CloseThisBar As Intent
        CloseThisBar.Initialize("android.intent.action.CLOSE_SYSTEM_DIALOGS", "")
        Dim R As Reflector
        R.Target = R.GetContext
        R.RunMethod4("sendBroadcast", Array As Object(CloseThisBar), Array As String("android.content.Intent"))
    End If
End Sub
 
Upvote 0

lemonisdead

Well-Known Member
Licensed User
Longtime User
Hello Informatix,
Thanks for the sample code. It works pretty good to close the app and that's magic. But I am still trying to understand how they do to be able to lock the bar for all the system.
Below is the app's manifest. Perhaps will you find something about the "recent apps" too.
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="812" android:versionName="4.57" package="THE_APP"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.gears42.nixsam.APP_MESSAGE_RECEIVER" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.sec.ENTERPRISE_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.sec.MDM_APP_MGMT" />
<uses-permission android:name="android.permission.sec.MDM_BLUETOOTH" />
<uses-permission android:name="android.permission.sec.MDM_INVENTORY" />
<uses-permission android:name="android.permission.sec.MDM_EXCHANGE" />
<uses-permission android:name="android.permission.sec.MDM_ROAMING" />
<uses-permission android:name="android.permission.sec.MDM_WIFI" />
<uses-permission android:name="android.permission.sec.MDM_SECURITY" />
<uses-permission android:name="android.permission.sec.MDM_HW_CONTROL" />
<uses-permission android:name="android.permission.sec.MDM_RESTRICTION" />
<uses-permission android:name="android.permission.sec.MDM_LOCATION" />
<uses-permission android:name="android.permission.sec.MDM_CALLING" />
<uses-permission android:name="android.permission.sec.MDM_EMAIL" />
<uses-permission android:name="android.permission.sec.MDM_VPN" />
<uses-permission android:name="android.permission.sec.MDM_APN" />
<uses-permission android:name="android.permission.sec.MDM_PHONE_RESTRICTION" />
<uses-permission android:name="android.permission.sec.MDM_BROWSER_SETTINGS" />
<uses-permission android:name="android.permission.sec.MDM_DATE_TIME" />
<uses-permission android:name="android.permission.sec.MDM_ENTERPRISE_VPN" />
<uses-permission android:name="android.permission.sec.MDM_FIREWALL" />
<uses-permission android:name="android.permission.sec.MDM_KIOSK_MODE" />
<uses-permission android:name="com.android.vending.BILLING" />
<permission android:name="THE_APPsam.COMMUNICATOR" android:protectionLevel="normal" />
<permission android:name="com.gears42.nixsam.APP_MESSAGE_RECEIVER" android:protectionLevel="normal" />
<permission android:name="THE_APP.SERVICE" android:protectionLevel="signature" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.telephony.gsm" android:required="false" />
<uses-feature android:name="android.hardware.telephony.cdma" android:required="false" />
<uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" />
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:name="SureLockApplication" android:persistent="true">
<activity android:theme="@*android:style/Theme" android:name="HomeScreen" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:theme="@*android:style/Theme" android:name="ClearDefaultsActivity" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/SystemTheme" android:label="@string/app_name2" android:icon="@drawable/wifi_configurator" android:name="com.gears42.WiFiCenter.WiFiCenter" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/customTheme" android:label="@string/bt_manager" android:icon="@drawable/bluetoothmanager" android:name="com.gears42.bluetoothmanager.BluetoothActivity" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.gears42.bluetoothmanager.PairedBluetootDevice" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MainMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SamsungSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AdminUsers" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AdminUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BlackWhitelistNumberList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AddEditNumber" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AllowedAppList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SelectAllowedApps" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AllowedWidgetList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.WidgetSettingsMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.PhoneSettingsMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ApplicationSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SurelockSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MiscSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AnalyticsSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.PowerSavingSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BrightnessOnBatterySettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BrightnessOnBatteryDetailsUI" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.TimeoutSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SelectDays" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MultiUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditFolderSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.CreateShortcut" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SingleAppMode" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.CustomTitleBar" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.Preview" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.DiagnosticView" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.AndroidFileBrowser" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.LicenseKeyInfo" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.ImportExportSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.SurePurchase" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.AdvImpExpSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.WarningPreference" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.ClearAutomaticUpdateHelp" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.CloudQRCodeGenerator" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@*android:style/Theme.Translucent" android:name="com.gears42.common.ui.InstructionsOverlay" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.UpdateForLollipop" />
<activity android:name="com.gears42.common.ui.SureFoxInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.NixInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.SamungProductsInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:theme="@style/SystemTheme" android:name="com.gears42.common.ui.ExportCloudSettings" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/SystemTheme" android:name="com.gears42.common.ui.ExistingCloudImportExport" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:name="com.gears42.common.ui.ScreensaverSettings" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/Theme" android:name="com.gears42.common.ui.ScreensaverActivity" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="BrightnessCheck" android:excludeFromRecents="true" />
<activity android:theme="@style/EmptyActivity" android:name="ApplySettingsActivity" android:excludeFromRecents="true" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="WakeupActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="TrialMessage" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="com.gears42.common.ui.AutoImportInProgress" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name=".WidgetConfigActivity" android:excludeFromRecents="true" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".LoginActivity" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ManageShortcuts" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ShortcutSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.WidgetSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MemorySettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditWallpaperSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="HideBottomBarWarning" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="SamPasswordActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" android:windowSoftInputMode="stateAlwaysVisible" />
<activity android:theme="@style/EmptyActivity" android:name="com.gears42.common.ui.GenericOverlay" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.GetWallpaperActivity" android:excludeFromRecents="true" android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="MiniWatchDogActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@*android:style/Theme.NoTitleBar" android:label="@string/app_name2" android:name="com.gears42.WiFiCenter.WifiSettings" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@*android:style/Theme.NoTitleBar" android:name="com.gears42.WiFiCenter.CustomWebView" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<receiver android:name="com.gears42.WiFiCenter.WifiReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<service android:name=".service.SureLockService" android:exported="false">
<intent-filter>
<action android:name=".service.SureLockService" />
</intent-filter>
<device-admin
xmlns:android="http://schemas.android.com/apk/res/android" />
</service>
<receiver android:name=".DeviceAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
<receiver android:name=".service.SureLockCommunicator" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.COMMUNICATOR" />
</intent-filter>
</receiver>
<receiver android:name=".common.ExportSettingsMDM" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.common.ExportSettingsMDM" />
</intent-filter>
</receiver>
<receiver android:name=".service.ClearNotificationsReceiver" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.ClearNotifications" />
</intent-filter>
</receiver>
<receiver android:name=".service.BatteryReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver android:name=".service.InstallShortcutReceiver" android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
<intent-filter>
<action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
</intent-filter>
</receiver>
<receiver android:name=".service.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".service.SMSReceiver" android:enabled="true">
<intent-filter android:priority="99999999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<receiver android:name=".service.OutgoingCallReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<receiver android:name=".service.MobileConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".service.SDCardMountReciver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name=".service.PowerPlugInReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver android:name=".service.IncomingCallReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver android:name=".service.WifiStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".service.ScheduleRebootReceiver" />
<receiver android:name="com.gears42.bluetoothmanager.BlueToothReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.bluetooth.device.action.FOUND" />
<action android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
<action android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
<action android:name="android.bluetooth.device.action.PAIRING_CANCEL" />
<action android:name="android.bluetooth.device.action.BOND_STATE_CHANGED" />
<action android:name="android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" />
<action android:name="android.media.SCO_AUDIO_STATE_CHANGED" />
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>
<receiver android:name=".SureLockUpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" android:path="THE_APP" />
</intent-filter>
</receiver>
</application>
</manifest>

And you were right about the bar, they use the

public static final String EXPAND_STATUS_BAR
Added in API level 1
Allows an application to expand or collapse the status bar.

Constant Value: "android.permission.EXPAND_STATUS_BAR"

So I think they receive the intent (I am still not understanding this) of the STATUS_BAR opening and immediately close it with a code like the one you have provided

Thanks to your code, I have found this : http://stackoverflow.com/questions/...-appearing-android-modified/25308654#25308654. I am currently trying to translate the code to JavaObject or Reflection but as I am a total newbie (why is it so hard to understand, I don't know).

EDIT: still not understanding and a solution is to create an overlay. I have opened a new question about : https://www.b4x.com/android/forum/threads/overlay-over-the-status_bar.49221/
 
Last edited:
Upvote 0

Informatix

Expert
Licensed User
Longtime User
Hello Informatix,
Thanks for the sample code. It works pretty good to close the app and that's magic. But I am still trying to understand how they do to be able to lock the bar for all the system.
Below is the app's manifest. Perhaps will you find something about the "recent apps" too.
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="812" android:versionName="4.57" package="THE_APP"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.gears42.nixsam.APP_MESSAGE_RECEIVER" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.sec.ENTERPRISE_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.sec.MDM_APP_MGMT" />
<uses-permission android:name="android.permission.sec.MDM_BLUETOOTH" />
<uses-permission android:name="android.permission.sec.MDM_INVENTORY" />
<uses-permission android:name="android.permission.sec.MDM_EXCHANGE" />
<uses-permission android:name="android.permission.sec.MDM_ROAMING" />
<uses-permission android:name="android.permission.sec.MDM_WIFI" />
<uses-permission android:name="android.permission.sec.MDM_SECURITY" />
<uses-permission android:name="android.permission.sec.MDM_HW_CONTROL" />
<uses-permission android:name="android.permission.sec.MDM_RESTRICTION" />
<uses-permission android:name="android.permission.sec.MDM_LOCATION" />
<uses-permission android:name="android.permission.sec.MDM_CALLING" />
<uses-permission android:name="android.permission.sec.MDM_EMAIL" />
<uses-permission android:name="android.permission.sec.MDM_VPN" />
<uses-permission android:name="android.permission.sec.MDM_APN" />
<uses-permission android:name="android.permission.sec.MDM_PHONE_RESTRICTION" />
<uses-permission android:name="android.permission.sec.MDM_BROWSER_SETTINGS" />
<uses-permission android:name="android.permission.sec.MDM_DATE_TIME" />
<uses-permission android:name="android.permission.sec.MDM_ENTERPRISE_VPN" />
<uses-permission android:name="android.permission.sec.MDM_FIREWALL" />
<uses-permission android:name="android.permission.sec.MDM_KIOSK_MODE" />
<uses-permission android:name="com.android.vending.BILLING" />
<permission android:name="THE_APPsam.COMMUNICATOR" android:protectionLevel="normal" />
<permission android:name="com.gears42.nixsam.APP_MESSAGE_RECEIVER" android:protectionLevel="normal" />
<permission android:name="THE_APP.SERVICE" android:protectionLevel="signature" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.telephony.gsm" android:required="false" />
<uses-feature android:name="android.hardware.telephony.cdma" android:required="false" />
<uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" />
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:name="SureLockApplication" android:persistent="true">
<activity android:theme="@*android:style/Theme" android:name="HomeScreen" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:theme="@*android:style/Theme" android:name="ClearDefaultsActivity" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/SystemTheme" android:label="@string/app_name2" android:icon="@drawable/wifi_configurator" android:name="com.gears42.WiFiCenter.WiFiCenter" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/customTheme" android:label="@string/bt_manager" android:icon="@drawable/bluetoothmanager" android:name="com.gears42.bluetoothmanager.BluetoothActivity" android:configChanges="keyboardHidden|orientation|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.gears42.bluetoothmanager.PairedBluetootDevice" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MainMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SamsungSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AdminUsers" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AdminUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BlackWhitelistNumberList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AddEditNumber" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AllowedAppList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SelectAllowedApps" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AllowedWidgetList" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.WidgetSettingsMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.PhoneSettingsMenu" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ApplicationSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SurelockSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MiscSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.AnalyticsSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.PowerSavingSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BrightnessOnBatterySettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.BrightnessOnBatteryDetailsUI" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.TimeoutSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SelectDays" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MultiUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditUserSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditFolderSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.CreateShortcut" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.SingleAppMode" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.CustomTitleBar" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.Preview" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.DiagnosticView" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.AndroidFileBrowser" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.LicenseKeyInfo" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.ImportExportSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.SurePurchase" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.AdvImpExpSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.WarningPreference" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.ClearAutomaticUpdateHelp" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.CloudQRCodeGenerator" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@*android:style/Theme.Translucent" android:name="com.gears42.common.ui.InstructionsOverlay" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.UpdateForLollipop" />
<activity android:name="com.gears42.common.ui.SureFoxInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.NixInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:name="com.gears42.common.ui.SamungProductsInfo" android:configChanges="locale|keyboard|keyboardHidden|screenLayout|uiMode" />
<activity android:theme="@style/SystemTheme" android:name="com.gears42.common.ui.ExportCloudSettings" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/SystemTheme" android:name="com.gears42.common.ui.ExistingCloudImportExport" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:name="com.gears42.common.ui.ScreensaverSettings" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/Theme" android:name="com.gears42.common.ui.ScreensaverActivity" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="BrightnessCheck" android:excludeFromRecents="true" />
<activity android:theme="@style/EmptyActivity" android:name="ApplySettingsActivity" android:excludeFromRecents="true" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="WakeupActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="TrialMessage" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name="com.gears42.common.ui.AutoImportInProgress" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode" />
<activity android:theme="@style/EmptyActivity" android:name=".WidgetConfigActivity" android:excludeFromRecents="true" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".LoginActivity" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ManageShortcuts" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.ShortcutSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.WidgetSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.MemorySettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name=".menu.EditWallpaperSettings" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="HideBottomBarWarning" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="SamPasswordActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" android:windowSoftInputMode="stateAlwaysVisible" />
<activity android:theme="@style/EmptyActivity" android:name="com.gears42.common.ui.GenericOverlay" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:name="com.gears42.common.ui.GetWallpaperActivity" android:excludeFromRecents="true" android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@style/EmptyActivity" android:name="MiniWatchDogActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation|screenLayout" />
<activity android:theme="@*android:style/Theme.NoTitleBar" android:label="@string/app_name2" android:name="com.gears42.WiFiCenter.WifiSettings" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<activity android:theme="@*android:style/Theme.NoTitleBar" android:name="com.gears42.WiFiCenter.CustomWebView" android:stateNotNeeded="true" android:launchMode="singleInstance" android:configChanges="locale|keyboard|keyboardHidden|orientation|uiMode" />
<receiver android:name="com.gears42.WiFiCenter.WifiReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<service android:name=".service.SureLockService" android:exported="false">
<intent-filter>
<action android:name=".service.SureLockService" />
</intent-filter>
<device-admin
xmlns:android="http://schemas.android.com/apk/res/android" />
</service>
<receiver android:name=".DeviceAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
<receiver android:name=".service.SureLockCommunicator" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.COMMUNICATOR" />
</intent-filter>
</receiver>
<receiver android:name=".common.ExportSettingsMDM" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.common.ExportSettingsMDM" />
</intent-filter>
</receiver>
<receiver android:name=".service.ClearNotificationsReceiver" android:enabled="true">
<intent-filter>
<action android:name="THE_APP.ClearNotifications" />
</intent-filter>
</receiver>
<receiver android:name=".service.BatteryReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver android:name=".service.InstallShortcutReceiver" android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
<intent-filter>
<action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
</intent-filter>
</receiver>
<receiver android:name=".service.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".service.SMSReceiver" android:enabled="true">
<intent-filter android:priority="99999999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<receiver android:name=".service.OutgoingCallReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<receiver android:name=".service.MobileConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".service.SDCardMountReciver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name=".service.PowerPlugInReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver android:name=".service.IncomingCallReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver android:name=".service.WifiStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".service.ScheduleRebootReceiver" />
<receiver android:name="com.gears42.bluetoothmanager.BlueToothReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.bluetooth.device.action.FOUND" />
<action android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
<action android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
<action android:name="android.bluetooth.device.action.PAIRING_CANCEL" />
<action android:name="android.bluetooth.device.action.BOND_STATE_CHANGED" />
<action android:name="android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" />
<action android:name="android.media.SCO_AUDIO_STATE_CHANGED" />
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>
<receiver android:name=".SureLockUpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" android:path="THE_APP" />
</intent-filter>
</receiver>
</application>
</manifest>

And you were right about the bar, they use the



So I think they receive the intent (I am still not understanding this) of the STATUS_BAR opening and immediately close it with a code like the one you have provided

Thanks to your code, I have found this : http://stackoverflow.com/questions/...-appearing-android-modified/25308654#25308654. I am currently trying to translate the code to JavaObject or Reflection but as I am a total newbie (why is it so hard to understand, I don't know).

EDIT: still not understanding and a solution is to create an overlay. I have opened a new question about : https://www.b4x.com/android/forum/threads/overlay-over-the-status_bar.49221/
I'd bet that they use an overlay but I didn't try to replicate it so I'm not sure. I stop searching because I have a lot of things to do this week but I'm still interested by any working solution.
 
Upvote 0
Top