Note: This guide is primarily for Android developers preparing to publish apps on the Google Play Store. How ever, to protect user privacy, it's advisable to complete the tasks described here regardless of where you distribute your Android app.
Several core device functions, such as reading call logs and sending SMS messages, require access to sensitive user information. To safeguard user privacy and enhance control over the information provided to apps, Google Play restricts access to permission groups related to calls and SMS.
If you distribute your app on the Google Play Store and need to access sensitive user information related to call logs or SMS, your app must register as the user's default handler for the relevant core device function, unless it meets any of the exceptions outlined in the Play Console Help Center. For instance, to access call-related permissions, your app must register as the user's default phone or Google Assistant handler, unless an exception applies.
This guide provides a brief overview of how users access default handlers on Android devices, outlines the requirements for an app to qualify as a default handler, and details how to request user consent to become a default handler.
For more information on default handlers and handling permissions in apps distributed via the Play Store, refer to the Permissions policy guide.
Viewing and Modifying Default Handler Sets
Android provides default handlers for various core use cases, such as making phone calls, sending SMS messages, and offering accessibility features.
A screen in the Android Settings app displays which apps currently serve as default handlers for device core functions, as shown in Figure 1. Users can modify the default handler for a specified function on this screen, as illustrated in Figure 2.

Figure 1. System settings screen showing the list of default handlers on the device.

Figure 2. System settings screen demonstrating how to change the default SMS handler.
Adhering to Default Handler Requirements
Given that apps access sensitive user information when acting as default handlers, only apps meeting the following Play Store listing and core functionality requirements may become default handlers:
- The app must be capable of performing the function it is responsible for as a default handler. For example, a default SMS handler should be able to send SMS messages.
- The app must provide a privacy policy.
- The app must clearly describe its core functions in the Play Store description. For instance, a default phone handler should detail its phone-related features.
- The app must declare permissions appropriate to its use case. For details on which permissions specific handlers can declare, see the guide on using SMS or call log permission groups in the Play Console Help.
- The app must request to become a default handler before requesting permissions associated with that handler. For example, an app must request to become the default SMS handler before requesting the
READ_SMSpermission.
Requesting User Consent
After ensuring your app meets the requirements to become a default handler, you can implement logic to display a dialog, as shown in Figure 3. This dialog asks the user to set your app as the default handler for a specific use case.
Note: The app must request to become a default handler before requesting permissions associated with that handler. For example, an app must request to become the default SMS handler before requesting the READ_SMS permission.
The folllowing code examples demonstrate the logic required to prompt the user to change the device's default SMS handler:
// Java example
Intent smsHandlerIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
smsHandlerIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName());
startActivityForResult(smsHandlerIntent, REQUEST_CODE_SMS_HANDLER);
// Kotlin example
val smsHandlerIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
smsHandlerIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(smsHandlerIntent, REQUEST_CODE_SMS_HANDLER)

Figure 3. Prompt asking the user whether to change the device's default SMS handler.