TrustedWebActivityService
abstract class TrustedWebActivityService : Service
kotlin.Any | ||||
↳ | android.content.Context | |||
↳ | android.content.ContextWrapper | |||
↳ | android.app.Service | |||
↳ | androidx.browser.trusted.TrustedWebActivityService |
The TrustedWebActivityService lives in a client app and serves requests from a Trusted Web Activity provider. At present it only serves requests to do with notifications.
When the provider receives a notification from a scope that is associated with a Trusted Web Activity client app, it will attempt to connect to a TrustedWebActivityService and forward calls. This allows the client app to display the notifications itself, meaning it is attributable to the client app and is managed by notification permissions of the client app, not the provider.
TrustedWebActivityService is usable as it is, by adding the following to your AndroidManifest:
<code><service android:name="androidx.browser.trusted.TrustedWebActivityService" android:enabled="true" android:exported="true"> <meta-data android:name="android.support.customtabs.trusted.SMALL_ICON" android:resource="@drawable/ic_notification_icon" /> <intent-filter> <action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </service> </code>The SMALL_ICON resource should point to a drawable to be used for the notification's small icon.
Alternatively for greater customization, TrustedWebActivityService can be extended and overridden. In this case the manifest entry should be updated to point to the extending class.
As this is an AIDL Service, calls may come in from different Binder threads, so overriding implementations need to be thread safe [1].
For security, the TrustedWebActivityService will check that whatever connects to it matches the Token
stored in the TokenStore
returned by getTokenStore
. This is because we don't want to allow any app on the users device to connect to this Service be able to make it display notifications. [1]: https://developer.android.com/guide/components/aidl.html
Summary
Constants | |
---|---|
static String |
An Intent Action used by the provider to find the TrustedWebActivityService or subclass. |
static String |
The key to use to store a Bitmap to return from the |
static String |
The key to use to store a boolean in the returns bundle of |
static String |
The Android Manifest meta-data name to specify a small icon id to use. |
static Int |
Used as a return value of |
Public constructors | |
---|---|
<init>() The TrustedWebActivityService lives in a client app and serves requests from a Trusted Web Activity provider. |
Public methods | |
---|---|
abstract TokenStore |
Returns a |
open Boolean |
onAreNotificationsEnabled(@NonNull channelName: String) Checks whether notifications are enabled. |
IBinder? | |
open Unit |
onCancelNotification(@NonNull platformTag: String, platformId: Int) Cancels a notification. |
open Unit |
onCreate() Called by the system when the service is first created. |
open Bundle? |
onExtraCommand(@NonNull commandName: String, @NonNull args: Bundle, @Nullable callbackRemote: TrustedWebActivityCallbackRemote?) Contains a free form command from the browser. |
open Bundle |
Returns a Bundle containing a bitmap to be use as the small icon for any notifications. |
open Int |
Returns the Android resource id of a drawable to be used for the small icon of the notification. |
open Boolean |
onNotifyNotificationWithChannel(@NonNull platformTag: String, platformId: Int, @NonNull notification: Notification, @NonNull channelName: String) Displays a notification. |
Boolean |
Constants
ACTION_TRUSTED_WEB_ACTIVITY_SERVICE
static val ACTION_TRUSTED_WEB_ACTIVITY_SERVICE: String
An Intent Action used by the provider to find the TrustedWebActivityService or subclass.
Value: "android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"
KEY_SMALL_ICON_BITMAP
static val KEY_SMALL_ICON_BITMAP: String
The key to use to store a Bitmap to return from the onGetSmallIconBitmap()
method.
Value: "android.support.customtabs.trusted.SMALL_ICON_BITMAP"
KEY_SUCCESS
static val KEY_SUCCESS: String
The key to use to store a boolean in the returns bundle of onExtraCommand
method, to indicate whether the command is executed successfully.
Value: "androidx.browser.trusted.SUCCESS"
META_DATA_NAME_SMALL_ICON
static val META_DATA_NAME_SMALL_ICON: String
The Android Manifest meta-data name to specify a small icon id to use.
Value: "android.support.customtabs.trusted.SMALL_ICON"
SMALL_ICON_NOT_SET
static val SMALL_ICON_NOT_SET: Int
Used as a return value of onGetSmallIconId
when the icon is not provided.
Value: -1
Public constructors
<init>
TrustedWebActivityService()
The TrustedWebActivityService lives in a client app and serves requests from a Trusted Web Activity provider. At present it only serves requests to do with notifications.
When the provider receives a notification from a scope that is associated with a Trusted Web Activity client app, it will attempt to connect to a TrustedWebActivityService and forward calls. This allows the client app to display the notifications itself, meaning it is attributable to the client app and is managed by notification permissions of the client app, not the provider.
TrustedWebActivityService is usable as it is, by adding the following to your AndroidManifest: