The lock screen is a vital part of your SDL app because it prevents the user from using the phone while the vehicle is in motion. SDL takes care of the lock screen for you. If you prefer your own look, but still want the recommended logic that SDL provides for free, you can also set your own custom lockscreen.
You must declare the SDLLockScreenActivity
in your manifest. To do so, simply add the following to your app's AndroidManifest.xml
if you have not already done so:
<activity android:name="com.smartdevicelink.managers.lockscreen.SDLLockScreenActivity" android:launchMode="singleTop"/>
This manifest entry must be added for the lock screen feature to work.
If you have implemented the SdlManager
and have defined the SDLLockScreenActivity
in your manifest but have not defined any lock screen configuration, you are already have a working default configuration.
It is possible to customize the background color and app icon in the default provided lockscreen. If you choose not to set your own app icon the library will use the SDL logo.
lockScreenConfig.setBackgroundColor(resourceColor); // For example, R.color.black
lockScreenConfig.setAppIcon(appIconInt); // For example, R.drawable.lockscreen icon
This sets whether or not to show the connected device's logo on the default lock screen. The logo will come from the connected hardware if set by the manufacturer. When using a custom view, the custom layout will have to handle the logic to display the device logo. The default setting is false, but some OEM partners may require it.
In your LockScreenConfig
object, you can set the boolean of whether or not you want the device logo shown, if available:
lockScreenConfig.showDeviceLogo(true);
If you would like to use your own lock screen instead of the one provided by the library, but still use the logic we provide, you can use a new initializer within LockScreenConfig
:
lockScreenConfig.setCustomView(customViewInt);
Please note that a lock screen will be required by most OEMs. You can disable the lock screen manager, but you will then be required to implement your own logic for showing and hiding the lock screen. This is not recommended as the LockScreenConfig
adheres to most OEM lock screen requirements. However, if you must create a lock screen manager from scratch, the library's lock screen manager can be disabled via the LockScreenConfig
as follows:
lockScreenConfig.setEnabled(false);