RoleManagerCompat
public final class RoleManagerCompat
This class contains the name and documentation for roles that might be available in the system.
The list of available roles might change with a system app update, so apps should not make assumption about the availability of roles. Instead, they should always check if the role is available using isRoleAvailable
before trying to do anything with it.
See also | |
---|---|
RoleManager |
Summary
Constants |
|
---|---|
static final String |
ROLE_ASSISTANT = "android.app.role.ASSISTANT" The name of the assistant role. |
static final String |
ROLE_BROWSER = "android.app.role.BROWSER" The name of the browser role. |
static final String |
ROLE_CALL_REDIRECTION = "android.app.role.CALL_REDIRECTION" The name of the call redirection role. |
static final String |
ROLE_CALL_SCREENING = "android.app.role.CALL_SCREENING" The name of the call screening and caller id role. |
static final String |
ROLE_DIALER = "android.app.role.DIALER" The name of the dialer role. |
static final String |
ROLE_EMERGENCY = "android.app.role.EMERGENCY" The name of the emergency role. |
static final String |
ROLE_HOME = "android.app.role.HOME" The name of the home role. |
static final String |
ROLE_SMS = "android.app.role.SMS" The name of the SMS role. |
static final String |
ROLE_SYSTEM_GALLERY = "android.app.role.SYSTEM_GALLERY" The name of the system gallery role. |
Constants
ROLE_ASSISTANT
public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"
The name of the assistant role.
To qualify for this role, an application needs to either implement android.service.voice.VoiceInteractionService
or handle ACTION_ASSIST
. The application will be able to access call log and SMS for its functionality.
See also | |
---|---|
VoiceInteractionService |
|
ACTION_ASSIST |
ROLE_BROWSER
public static final String ROLE_BROWSER = "android.app.role.BROWSER"
The name of the browser role.
To qualify for this role, an application needs to handle the intent to browse the Internet:
<activity> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http" /> </intent-filter> </activity>
Apps that hold this role are allowed to start activities in response to notification clicks or notification action clicks when targeting S
to give browsers time to adapt. This is temporary and browsers will be subjected to the same trampoline restrictions at some point in future releases. For more details on those restrictions see setContentIntent and Builder
.
See also | |
---|---|
CATEGORY_APP_BROWSER |
ROLE_CALL_REDIRECTION
public static final String ROLE_CALL_REDIRECTION = "android.app.role.CALL_REDIRECTION"
The name of the call redirection role.
To qualify for this role, an application needs to implement android.telecom.CallRedirectionService
. The application will be able to re-write the phone number for an outgoing call to place the call through a call redirection service.
See also | |
---|---|
CallRedirectionService |
ROLE_CALL_SCREENING
public static final String ROLE_CALL_SCREENING = "android.app.role.CALL_SCREENING"
The name of the call screening and caller id role.
To qualify for this role, an application needs to implement android.telecom.CallScreeningService
. The application will be able to screen calls and provide call identification. The application will also be able to display over other apps on Android 11 or above.
See also | |
---|---|
CallScreeningService |
ROLE_DIALER
public static final String ROLE_DIALER = "android.app.role.DIALER"
The name of the dialer role.
To qualify for this role, an application needs to handle the intent to dial, and implement an android.telecom.InCallService
if the application targets android.os.Build.VERSION_CODES.TIRAMISU or higher:
<activity> <intent-filter> <action android:name="android.intent.action.DIAL" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.DIAL" /> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="tel" /> </intent-filter> </activity> <service android:permission="android.permission.BIND_INCALL_SERVICE"> <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" /> <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI" android:value="false" /> <intent-filter> <action android:name="android.telecom.InCallService" /> </intent-filter> </service>
See also | |
---|---|
ACTION_DIAL |
ROLE_EMERGENCY
public static final String ROLE_EMERGENCY = "android.app.role.EMERGENCY"
The name of the emergency role.
You may not be able to request for this role on most devices as it's hidden by default and only for system apps.
To qualify for this role, an application needs to handle the intent for emergency assitance:
<activity> <intent-filter> <action android:name="android.telephony.action.EMERGENCY_ASSISTANCE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
ROLE_HOME
public static final String ROLE_HOME = "android.app.role.HOME"
The name of the home role.
To qualify for this role, an application needs to handle the intent for home:
<activity> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </activity>
See also | |
---|---|
CATEGORY_HOME |
ROLE_SMS
public static final String ROLE_SMS = "android.app.role.SMS"
The name of the SMS role.
To qualify for this role, an application needs to declare the following components:
<activity> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="smsto" /> </intent-filter> </activity> <service android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"> <intent-filter> <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="smsto" /> </intent-filter> </service> <receiver android:permission="android.permission.BROADCAST_SMS"> <intent-filter> <action android:name="android.provider.Telephony.SMS_DELIVER" /> </intent-filter> </receiver> <receiver android:permission="android.permission.BROADCAST_WAP_PUSH"> <intent-filter> <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" /> <data android:mimeType="application/vnd.wap.mms-message" /> </intent-filter> </receiver>
See also | |
---|---|
CATEGORY_APP_MESSAGING |
ROLE_SYSTEM_GALLERY
public static final String ROLE_SYSTEM_GALLERY = "android.app.role.SYSTEM_GALLERY"
The name of the system gallery role.
You can not request for this role because it's hidden and only for system apps. It's meant to be granted out-of-the-box to a gallery app that shipped with the device.
The application will gain full read and write access to all image and video files on external storage, including access to location metadata.