TrustedWebActivityService

public abstract class TrustedWebActivityService
extends Service

java.lang.Object
   ↳ 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:

 <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>
 
 
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

String ACTION_TRUSTED_WEB_ACTIVITY_SERVICE

An Intent Action used by the provider to find the TrustedWebActivityService or subclass.

String KEY_SMALL_ICON_BITMAP

The key to use to store a Bitmap to return from the onGetSmallIconBitmap() method.

String KEY_SUCCESS

The key to use to store a boolean in the returns bundle of onExtraCommand(String, Bundle, TrustedWebActivityCallbackRemote) method, to indicate whether the command is executed successfully.

String META_DATA_NAME_SMALL_ICON

The Android Manifest meta-data name to specify a small icon id to use.

int SMALL_ICON_NOT_SET

Used as a return value of onGetSmallIconId() when the icon is not provided.

Inherited constants