# Android SBI Specifications - Draft

**URL:** <https://community.mosip.io/t/android-sbi-specifications-draft/77>\
**Category:** Partner Ecosystem\
**Tags:** announcement, android\
**Created:** [May 25, 2022, 8:25am UTC](https://community.mosip.io/t/android-sbi-specifications-draft/77 "2022-05-25T08:25:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sanjith\_Sundaram](https://dub1.discourse-cdn.com/flex017/user_avatar/community.mosip.io/sanjith_sundaram/32/22_2.png) [@Sanjith\_Sundaram](https://community.mosip.io/u/Sanjith_Sundaram)\
**Post date:** [May 25, 2022, 8:25am UTC](https://community.mosip.io/t/android-sbi-specifications-draft/77/1 "2022-05-25T08:25:23Z")

</div>

Hello All,

Following is the draft specification for Android SBI. Please provide your feedback and review comments for the same.

Also please find the direct link to the full SBI specs here, a new section on Android is now added: [https://docs.mosip.io/1.1.5/biometrics/mosip-device-service-specification#android-sbi-specification](https://docs.mosip.io/1.1.5/biometrics/mosip-device-service-specification#android-sbi-specification)

Regards,  
Sanjith Sundaram

**Introduction:**  
This document explains the mechanism for the SBI devices to communicate in the android operating system.

**Status:**  
Draft document V 0.9

**Approach:**  
Discovery will return the appId of the discovered items. User will be given a choice to choose one of the discovered SBI app. The selected app responds back to the intent using the default intent callback functionality.

**Device Discovery:**  
_Request:_ io.sbi.device  
_action:_ io.sbi.device  
_data:_ no change  
_type:_ application/json  
_Request Schema:_ No change in the data structure. The serialized request data as byte array is set in the intent extras with key as “input”.  
_Response Schema:_ No change in the data structure. The serialized response data (byte array) is set in the intent extras with key as “response”.

_callbackId_ should be set to the appId, can not be empty in android.

**Device Info:**  
_Request:_ appId.Info  
_action:_ appId.Info  
_data:_ no change  
_type:_ application/json  
_Request Schema:_ No change in the data structure. The serialized request data as a byte array is set in the intent extras with the key as “input”.  
_Response Schema:_ No change in the data structure. The serialized response data as a byte array is set in the intent extras with the key as “response”.

_deviceInfo:callbackId_ should be set to the appId, can not be empty in android.

**Capture:**  
_Request:_ appId.Capture  
_action:_ appId.Capture  
_data:_ no change  
_type:_ application/json  
_flag:_ FLAG\_GRANT\_READ\_URI\_PERMISSION  
_Request Schema:_ No change in the data structure. The serialized request data as a byte array is set in the intent extras with the key as “input”.  
_Response Schema:_ No change in the data structure. The response content is set as content URI “content://authority/path/id” in the intent extras as a string with the key as “response”.

URI must be invalidated right after the read.

**rCapture:**  
_Request:_ appId.rCapture  
_action:_ appId.rCapture  
_data:_ no change  
_type:_ application/json  
_flag:_ FLAG\_GRANT\_READ\_URI\_PERMISSION  
_Request Schema:_ No change in the data structure. The serialized request data as byte array is set in the intent extras with key as “input”.  
_Response Schema:_ No change in the data structure. The response content is set as content URI “content://authority/path/id” in the intent extras as a string with the key as “response”.  
The content provider should not support insert, update, delete

**Device Stream:**  
On receiving rCapture request MDS must show the stream within its UI in the foreground.

**Security:**  
Ensure to set the correct authority in the manifest and set the android:exported as “False”

**Android Tab Specs:**  
Android 9 and above with hardware-backed key store
