Added in API level 37

PccClient


public class PccClient
extends Object

java.lang.Object
   ↳ android.app.privatecompute.PccClient


Provides a connection to a PCC service.

Summary

Public methods

static PccClient createInstance(Context context, IBinder binder)

Factory method to create an instance of PccClient.

void sendData(Bundle data)

Sends a Bundle of data to the connected PCC service.

Inherited methods

Public methods

createInstance

Added in API level 37
public static PccClient createInstance (Context context, 
                IBinder binder)

Factory method to create an instance of PccClient. This should be called from onServiceConnected() with the IBinder received from the system

Example:


 private final ServiceConnection mConnection = new ServiceConnection() {
   @Override
   public void onServiceConnected(ComponentName className, IBinder service) {
     mClient = PccClient.createInstance(MainActivity.this, service);
   }

   @Override
   public void onServiceDisconnected(ComponentName className) {
     mClient = null;
   }
 };

 //...
 bindService(intent, mConnection, flags);
 

Parameters
context Context: The Context from the calling component.
This value cannot be null.

binder IBinder: The IBinder object received from the service connection.
This value cannot be null.

Returns
PccClient A new instance of PccClient.

sendData

Added in API level 37
public void sendData (Bundle data)

Sends a Bundle of data to the connected PCC service. The Bundle is sanitized to enforce one-way data flow if the caller isn't allowed two-way communication with PCC components.

Parameters
data Bundle: The Bundle of data to send.
This value cannot be null.

Throws
IllegalArgumentException if the Bundle contains unsafe data types and the caller isn't allowed two way communication with PCC components. To enforce a strictly one-way data flow, the Bundle is sanitized to prevent objects that can be used to establish a two-way communication channel like IBinder, Messenger, etc.

Allowed data types are:

  • Primitives and their arrays (e.g., int, char, boolean, String, byte[])
  • PersistableBundle
  • Read-only ParcelFileDescriptor
  • SharedMemory (must be read-only, or will be set to read-only)
  • Bitmap
  • Custom Parcelable objects must be serialized as a byte[].
  • Nested Bundle objects, which are recursively sanitized. Throws IllegalArgumentException if the depth exceeds 100.
IllegalStateException if sendData is called after the service has been killed by the system
RuntimeException if the PCC service is unavailable for any other reason.
SecurityException if the packageName from the passed context does not match the actual package name of the app.