checkServiceStatus method
Checks the current status of the service associated with the given
Permission
.
Notes about specific permissions:
Permission.phone
- Android:
- The method will return
ServiceStatus.notApplicable
when:- the device lacks the TELEPHONY feature
- TelephonyManager.getPhoneType() returns PHONE_TYPE_NONE
- when no Intents can be resolved to handle the
tel:
scheme
- The method will return
ServiceStatus.disabled
when:- the SIM card is missing
- The method will return
- iOS:
- The method will return
ServiceStatus.notApplicable
when:- the native code can not find a handler for the
tel:
scheme
- the native code can not find a handler for the
- The method will return
ServiceStatus.disabled
when:- the mobile network code (MNC) is either 0 or 65535. See https://stackoverflow.com/a/11595365 for details
- The method will return
- PLEASE NOTE that this is still not a perfect indication of the device's capability to place & connect phone calls as it also depends on the network condition.
- Android:
Implementation
@override
Future<ServiceStatus> checkServiceStatus(Permission permission) async {
final result = await checkPermissionStatus(permission);
switch (result) {
case PermissionStatus.granted:
return ServiceStatus.enabled;
default:
return ServiceStatus.disabled;
}
}