Class Info |
|---|
public class DevicePhoneManager 设备通话管理类。 |
Qualifier and Type | Method Name and Description |
|---|---|
void | hangupCalling(ComponentName admin) 挂断当前通话。 |
boolean | setDataRoamingDisabled(ComponentName admin, boolean isDisabled) 禁用/启用漫游数据业务。 |
boolean | isDataRoamingDisabled(ComponentName admin) 查询漫游数据业务禁用状态。 |
boolean | setAccessPointNameDisabled(ComponentName admin, boolean isDisabled) 禁用/启用 APN。 |
boolean | isApnChangeDisabled(ComponentName admin) 查询 APN 禁用状态。 |
boolean | addMdmNumberList(ComponentName admin, ArrayList<String> numbers, int blockMode, boolean isOutgoing, boolean isBlockList) 设置通话黑白名单。 |
boolean | removeMdmNumberList(ComponentName admin,ArrayList<String> numbers, int blockMode, boolean isOutgoing, boolean isRemoveAll) 从通话黑白名单中移除电话号码。 |
boolean | isBlockNumber(ComponentName admin, String number, boolean isOutgoing) 查询电话号码是否在通话黑名单里面。 |
boolean | setRoamingCallDisabled(ComponentName admin, boolean isDisabled) 禁止/允许漫游状态通话。 |
boolean | isRoamingCallDisabled(ComponentName admin) 查询是否禁止漫游状态通话。 |
boolean | setNonEmergencyCallDisabled(ComponentName admin, boolean isDisabled) 禁止/允许非紧急号码通话。 |
boolean | isNonEmergencyCallDisabled(ComponentName admin) 查询是否禁止非紧急号码通话。 |
boolean | setPhoneCallLimitation(ComponentName admin, boolean isOutgoing, int dateType, int limitNumber) 设置通话次数限制策略。 |
boolean | removePhoneCallLimitation(ComponentName admin, boolean isOutgoing, int dateType) 移除通话次数限制策略。 |
boolean | isPhoneCallLimitationSet(ComponentName admin, boolean isOutgoing) 查询是否设置了通话次数限制。 |
boolean | setPhoneNumberShowDisabled(ComponentName admin, boolean isDisabled) 禁用/启用电话号码显示功能。 |
boolean | isPhoneNumberShowDisabled(ComponentName admin) 查询号码显示功能是否被禁用。 |
boolean | setCallStatusNotificationApp(ComponentName admin, String packageName) 设置接收通话状态通知的应用。 |
String | getCallStatusNotificationApp() 获取接收通话状态通知的应用包名。 |
boolean | setMultiCallingDisabled(ComponentName admin, boolean isDisabled) 禁用/启用多路通话功能。 |
boolean | isMultiCallingDisabled(ComponentName admin) 查询多路通话功能状态 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public void hangupCalling(ComponentName admin) 挂断当前通话,包括三方通话以及会议电话等。 注意:需要申请com.huawei.permission.sec.MDM_PHONE权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | 参数admin为null时。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setDataRoamingDisabled(ComponentName admin, boolean isDisabled) 禁用漫游数据业务。禁用漫游数据业务后,漫游数据设置项不可用,用户不能再进行相关设置。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isDisabled |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isDataRoamingDisabled(ComponentName admin) 查询是否禁用了漫游数据业务。 |
Parameters
Name | Description |
admin | 调用该接口的组件名称,不能为null。 |
Return
Type | Description |
boolean |
|
Throws
Name | Description |
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setAccessPointNameDisabled(ComponentName admin, boolean isDisabled) 禁用/启用 APN。禁用 APN 后,APN 设置项不可用,用户不能再进行相关设置。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isDisabled |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isApnChangeDisabled(ComponentName admin) 查询是否禁用了 APN。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
Return
Type | Description |
|---|---|
boolean | true:APN已被禁用。 false:APN未被禁用。 |
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean addMdmNumberList(ComponentName admin, ArrayList<String> numbers, int blockMode, boolean isOutgoing, boolean isBlockList) 设置通话黑名单和白名单。如果将号码添加至通话黑名单,设备将拦截此号码的来去电;如果设置了通话白名单,设备将拦截所有非白名单号码的来去电。来电和去电可分开设置,互不影响。 注意:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
numbers | 需要设置的电话号码,传入全数字号码。(上限200) |
blockMode | 号码匹配的可选模式:
|
isOutgoing | 表示设置去电名单或来电名单。取值为“true”表示设置去电黑白名单;取值为“false”表示设置来电黑白名单。 |
isBlackList | 表示设置通话黑名单或白名单。取值为“true”表示设置通话黑名单;取值为“false”表示设置通话白名单。 如果设备已设置通话黑名单,则无法再设置通话白名单。必须先调用removeMdmNumberList()接口移除已设置的通话黑名单。 反之,如果设备已设置通话白名单,则无法再设置通话黑名单。必须先调用removeMdmNumberList()接口移除已设置的通话白名单。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean removeMdmNumberList(ComponentName admin,ArrayList<String> numbers, int blockMode, boolean isOutgoing, boolean isRemoveAll) 从通话黑白名单中移除电话号码。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
numbers | 需要移除的电话号码,传入全数字号码。 |
blockMode | 号码匹配的可选模式:
其他int值非法。 |
isOutgoing | 表示移除去电名单或来电名单。取值为“true”移除去电名单内容,取值为“false”移除来电名单内容。 |
isRemoveAll | 移除所有名单。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 5.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isBlockNumber(ComponentName admin, String number, boolean isOutgoing) 查询电话号码是否在通话黑名单里面。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
number | 需要查询的电话号码。 |
isOutgoing |
|
Return
Type | Description |
|---|---|
boolean |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setRoamingCallDisabled(ComponentName admin, boolean isDisabled) 禁止或允许手机在漫游状态下通话。双卡手机禁用,只禁用漫游卡,紧急号码不受限。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isDisabled |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isRoamingCallDisabled(ComponentName admin) 查询是否禁止漫游状态通话。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,能为null。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setNonEmergencyCallDisabled(ComponentName admin, boolean isDisabled) 禁止或允许非紧急号码通话。禁止后非紧急号码不能通话,紧急号码不受限。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isDisabled |
|
Return
Type | Description |
boolean |
|
Throws
Name | Description |
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isNonEmergencyCallDisabled(ComponentName admin) 查询是否禁止非紧急号码通话。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,能为null。 |
Return
Type | Description |
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setPhoneCallLimitation(ComponentName admin, boolean isOutgoing, int dateType, int limitNumber) 可以分别设置天/周/月拨打或接听的通话次数。拨打和接听次数可以分开设置。紧急通话不受限制。 注意:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isOutgoing |
|
dateType | 设置天/周/月:
其他 int 值非法。 |
limitNumber | 表示限制的次数。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean removePhoneCallLimitation (ComponentName admin, boolean isOutgoing, int dateType) 可以分别移除天/周/月拨打或接听的通话次数限制。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,不能为null。 |
isOutgoing |
|
dateType | 设置天/周/月:
其他 int 值非法。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.0及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isPhoneCallLimitationSet(ComponentName admin, boolean isOutgoing) 查询是否设置了通话次数限制。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,能为null。 |
isOutgoing |
|
Return
Type | Description |
boolean |
|
Throws
Name | Description |
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 10.0.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setPhoneNumberShowDisabled(ComponentName admin, boolean isDisabled) 当应用调用此接口隐藏号码时,通话详情、通话记录、拨号盘界面等界面会隐藏电话号码。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
isDisabled |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | 参数admin为null时。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 10.0.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isPhoneNumberShowDisabled(ComponentName admin) 查询号码显示功能是否被禁用。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,查询该应用配置的策略;参数为null时,获取所有应用设置的综合策略结果。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setCallStatusNotificationApp(ComponentName admin, String packageName) 通过设置应用包名,向应用发送通话状态通知的定向广播, 包名为空值时取消发送通话状态通知。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
packageName | 接收通话状态通知的应用包名, 包名为空值时取消发送通话状态通知。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | 参数错误。 |
如果需要获取通话状态通知结果,开发者需要在你的工程中定义一个广播接收器BroadcastReceiver。在AndroidManifest.xml中指定action为" action.huawei.CALL_STATUS_NOTIFICATION_FOR_MDM ",同时配置exported为false。
如:
<receiver
android:name=".MdmOnReceiverCallStatusNotification"
android:exported="false">
<intent-filter>
<action android:name="action.huawei.CALL_STATUS_NOTIFICATION_FOR_MDM" />
</intent-filter>
</receiver> 在广播接收器中,开发者通过intent获取到Bundle对象,然后从Bundle对象中获取状态值。
Bundle中有以下字段:
boolean is_outgoing: true: 去电 false:来电
boolean is_connected: true:通话接通 false:通话未接通
int who_hang_up: 1: 我方挂断 2:对方挂断 3:其他场景挂断
int disconnected_cause_reason: 通话结束具体原因(有下面几种取值)
1: 本地挂断,如点击挂断按钮挂断电话。
2: 对方挂断。
3 :来电拒接。
4 :来电无人接听。
5: 主叫时拒接或无人接听,等待运营商提示后自动挂断。
6: 其他场景异常挂断。
通话状态通知结果字段获取只能通过下面方式:
Bundle. getBoolean("is_outgoing") 参数只能是is_outgoing
Bundle. getBoolean (“is_connected”) 参数只能是is_connected
Bundle. getInt("who_hang_up") 参数只能是who_hang_up
Bundle.getInt(“disconnected_cause_reason”) 参数只能是disconnected_cause_reason
示例代码:
public class MdmBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null) {
return ;
}
Bundle bundle = intent.getExtras();
if (bundle != null) {
boolean isOutGoing = bundle. getBoolean("is_outgoing");
boolean isConnected = bundle. getBoolean("is_connected");
int hungUp = bundle.getInt("who_hang_up");
int causeReason = bundle.getInt("disconnected_cause_reason ");
if (causeReason ==1) {
//业务逻辑处理
} else {
//业务逻辑处理
}
}
}
} Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public String getCallStatusNotificationApp() 获取接收通话状态通知的应用包名。 |
Parameters
Name | Description |
|---|---|
void | - |
Return
Type | Description |
|---|---|
String | 接收通话状态通知的应用包名。 |
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean setMultiCallingDisabled(ComponentName admin, boolean isDisabled) 禁用/启用多路通话功能,禁用后同时只能进行一路通话。 注意:需要申请com.huawei.permission.sec.MDM_PHONE_MANAGER权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
isDisabled |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | 参数错误。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isMultiCallingDisabled(ComponentName admin) 查询多路通话功能是否禁用。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称,参数为null时,获取所有应用设置的综合策略结果。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |