智能客服
你问我答,随时在线为你解决问题
Class Info |
|---|
public class DevicePackageManager 设备包管理类。 |
Qualifier and Type | Method Name and Description |
|---|---|
void | installPackage(ComponentName admin, String packagePath) 静默安装某应用。 |
void | uninstallPackage(ComponentName admin, String packageName, boolean isKeepData) 静默卸载某应用。 |
void | clearPackageData(ComponentName admin, String packageName) 删除某应用数据。 |
void | disableInstallSource(ComponentName admin, List<String> trustList) 添加安装应用源白名单。 |
void | enableInstallPackage(ComponentName admin) 取消安装应用源白名单。 |
boolean | isInstallSourceDisabled(ComponentName admin) 查询安装应用源是否被禁用。 |
List<String> | getInstallPackageSourceTrustList(ComponentName admin) 获取安装应用源白名单。 |
List<String> | getInstallPackageSourceWhiteList(ComponentName admin) EMUI 11.0.0该方法已废弃,请使用List<String> getInstallPackageSourceTrustList(ComponentName admin)。 |
void | addInstallPackageTrustList(ComponentName admin, List<String> packageNames) 添加应用安装白名单。 |
void | addInstallPackageWhiteList(ComponentName admin, List<String> packageNames) EMUI 11.0.0该方法已废弃,请使用void addInstallPackageTrustList(ComponentName admin, List<String> packageNames)。 |
void | removeInstallPackageTrustList(ComponentName admin, List<String> packageNames) 删除应用安装白名单。 |
void | removeInstallPackageWhiteList(ComponentName admin, List<String> packageNames) EMUI 11.0.0该方法已废弃,请使用void removeInstallPackageTrustList(ComponentName admin, List<String> packageNames)。 |
List<String> | getInstallPackageTrustList(ComponentName admin) 获取应用安装白名单。 |
List<String> | getInstallPackageWhiteList(ComponentName admin) EMUI 11.0.0该方法已废弃,请使用List<String> getInstallPackageTrustList(ComponentName admin)。 |
void | addDisallowedUninstallPackages(ComponentName admin, List<String> packageNames) 添加阻止某应用被卸载名单。 |
void | removeDisallowedUninstallPackages(ComponentName admin, List<String> packageNames) 删除阻止某应用被卸载名单。 |
List<String> | getDisallowedUninstallPackageList(ComponentName admin) 获取阻止某应用被卸载名单。 |
boolean | addAllowNotificationApps(ComponentName admin, ArrayList<String> packageNames) 添加应用通知白名单。 |
boolean | removeAllowNotificationApps(ComponentName admin, ArrayList<String> packageNames) 移除应用通知白名单。 |
ArrayList<String> | getAllowNotificationApps(ComponentName admin) 查询应用通知白名单。 |
void | addDisabledDeactivateMdmPackages(ComponentName admin, List<String> package) 添加禁止反激活名单。EMUI 11.0.0该方法废弃,请使用boolean setForcedActiveDeviceAdmin(ComponentName admin, Context context)。 |
void | removeDisabledDeactivateMdmPackages(ComponentName admin, List<String> packageNames) 删除禁止反激活名单。EMUI 11.0.0该方法废弃。 |
List<String> | getDisabledDeactivateMdmPackageList(ComponentName admin) 获取禁止反激活名单。EMUI 11.0.0该方法废弃。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
智慧屏 | HarmonyOS 2.0及以上 |
Method |
|---|
public void installPackage(ComponentName admin, String packagePath) 静默安装某应用。 packagePath为当前APK的路径(包含APK名称),为APK的真实路径。 比如通过如下代码: String packagePath = Environment.getExternalStorageDirectory().getAbsolutePath(); 此时的packagePath为“/storage/emulated/0/***.apk” 注意:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packagePath | 当前要安装package的路径,当package为无效路径时,调用无作用。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | admin为null时。 |
EMUI 10.1.0及以上或HarmonyOS 2.0及以上的版本如果需要获取静默安装通知结果,开发者需要在工程中定义一个广播接收器BroadcastReceiver。在AndroidManifest.xml中指定action为"com.huawei.intent.action.InstallMdmPackage",同时配置exported为false。
如:
<receiver
android:name=".MdmBroadcastReceiver_Install"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.intent.action.InstallMdmPackage" />
</intent-filter>
</receiver> 在广播接收器中,开发者通过intent获取到Bundle对象,然后从Bundle对象中获取静默安装包名和静默安装状态值。
Bundle中有两个字段:
String packageName: 静默安装应用的包名。
int installStatus: 静默安装状态值。有下面几种状态:
静默安装字段获取只能通过下面方式:
Bundle.getString(“packageName”) 参数只能是packageName
Bundle.getInt(“returnCode”) 参数只能是returnCode
示例代码:
public class MdmBroadcastReceiver_Install extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null) {
return ;
}
Bundle bundle = intent.getExtras();
if (bundle != null) {
String packageName = bundle.getString("packageName");
int returnCode = bundle.getInt("returnCode");
if (returnCode == 0) { //returnCode=0的时候是静默安装成功
//业务逻辑处理
} else { //returncode != 0
//业务逻辑处理
}
} else {
//具体逻辑实现
}
}
} Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public void uninstallPackage(ComponentName admin, String packageName, boolean isKeepData) 静默卸载某应用。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称。 |
packageName | packageName为当前要卸载的包名,如果包名无效,则会抛出异常。 |
isKeepData |
|
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | admin为null或packageName为无效包名。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
智慧屏 | HarmonyOS 2.0及以上 |
Method |
|---|
public void clearPackageData(ComponentName admin, String packageName) 删除某应用数据。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称。 |
packageName | 当前要被清除数据应用的包名。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | admin为null或packageName为无效包名或系统包名。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public void disableInstallSource(ComponentName admin, List<String> trustList) 添加安装应用源白名单。 本接口会屏蔽安装方式,仅包名添加到trustList列表的应用,有安装其他应用的功能,如某些应用市场。包名不在此list中的应用市场,不能安装应用。同时,调用此方法后,SD卡、adb等安装方式都会不生效。 注意:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
trustList | 包名List,即仅在此List中的应用能安装应用,如在List加入某应用市场包名,非此List中应用市场、SD卡、adb都不能安装应用。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public void enableInstallPackage(ComponentName admin) 取消安装应用源白名单。 与disableInstallSource接口相反,即取消disableInstallSource接口作用。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException | admin为null。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean isInstallSourceDisabled(ComponentName admin) 查询安装应用源是否被禁用。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public List<String> getInstallPackageSourceTrustList(ComponentName admin) 获取安装应用源白名单。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
List<String> | 安装应用源白名单。 |
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public List<String> getInstallPackageSourceWhiteList(ComponentName admin) EMUI 11.0.0该方法废弃,请使用getInstallPackageSourceTrustList。 获取安装应用源白名单。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
List<String> | 安装应用源白名单。 |
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public void addInstallPackageTrustList(ComponentName admin, List<String> packageNames) 添加应用安装白名单。 仅包名添加到packageNames列表的应用,能够被安装。非列表中的应用,不能被安装。 注意:
注:本接口与“禁用安装应用源”的区别:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待添加到的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public void addInstallPackageWhiteList(ComponentName admin, List<String> packageNames) EMUI 11.0.0该方法废弃,请使用addInstallPackageTrustList。 添加应用安装白名单。 仅包名添加到packageNames列表的应用,能够被安装。非列表中的应用,不能被安装。 注意:
注:本接口与“禁用安装应用源”的区别:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待添加到的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public void removeInstallPackageTrustList(ComponentName admin, List<String> packageNames) 删除应用安装白名单。 从安装应用白名单中删除应用,全部删除后,所有应用均可以正常安装,不会被限制。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待删除的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public void removeInstallPackageWhiteList(ComponentName admin, List<String> packageNames) EMUI 11.0.0该方法废弃,请使用removeInstallPackageTrustList。 删除应用安装白名单。 从安装应用白名单中删除应用,全部删除后,所有应用均可以正常安装,不会被限制。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待删除的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 11.0或HarmonyOS 2.0及以上 |
Method |
|---|
public List<String> getInstallPackageTrustList(ComponentName admin) 获取应用安装白名单。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
List<String> |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public List<String> getInstallPackageWhiteList(ComponentName admin) EMUI 11.0.0该方法废弃,请使用getInstallPackageTrustList。 获取应用安装白名单。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
List<String> |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
智慧屏 | HarmonyOS 2.0及以上 |
Method |
|---|
public void addDisallowedUninstallPackages(ComponentName admin, List<String> packageNames) 添加阻止某应用被卸载名单,添加后,应用不可以被卸载。 注意:
|
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待添加的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
智慧屏 | HarmonyOS 2.0及以上 |
Method |
|---|
public void removeDisallowedUninstallPackages(ComponentName admin, List<String> packageNames) 删除阻止某应用被卸载名单。通过包名从卸载黑名单中删除应用,删除后,应用可以被正常卸载。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的APK的组件名称,不能为null。 |
packageNames | 待从名单中删除的应用包名列表。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
IllegalArgumentException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1及以上或HarmonyOS 2.0及以上 |
智慧屏 | HarmonyOS 2.0及以上 |
Method |
|---|
public List<String> getDisallowedUninstallPackageList(ComponentName admin) 获取应用卸载黑名单。 |
Parameters
Name | Description |
|---|---|
admin |
|
Return
Type | Description |
|---|---|
List<String> |
|
Throws
Name | Description |
|---|---|
SecurityException | 此APK不属于当前用户。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.2及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean addAllowNotificationApps(ComponentName admin, ArrayList<String> packageNames) 添加应用通知白名单, 添加后只有白名单中的应用能发送通知。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
packageNames | 待添加到通知白名单中的应用列表。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.2及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public boolean removeAllowNotificationApps(ComponentName admin,ArrayList<String> packageNames) 移除应用通知白名单。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
packageNames | 待删除的通知白名单中的应用列表。 |
Return
Type | Description |
|---|---|
boolean |
|
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 8.2及以上或HarmonyOS 2.0及以上 |
Method |
|---|
public ArrayList<String> getAllowNotificationApps(ComponentName admin) 查询应用通知白名单。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的的组件名称,查询该应用配置的策略;参数为null时,获取所有应用设置的综合策略结果。 |
Return
Type | Description |
|---|---|
ArrayList<String> | 返回通知白名单中的应用列表。 |
Throws
Name | Description |
|---|---|
SecurityException | 此APK未经设备管理激活。 |
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public void addDisabledDeactivateMdmPackages(ComponentName admin, List<String> package) EMUI 11.0.0该方法废弃,请使用setForcedActiveDeviceAdmin。 添加禁止反激活名单。在设备管理器中,APK激活状态下不可以取消激活。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
package | 需要添加到不可反激活的APK包名。 |
Return
Type | Description |
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public void removeDisabledDeactivateMdmPackages(ComponentName admin, List<String> packageNames) EMUI 11.0.0该方法废弃。 删除禁止反激活名单。 注意:需要申请com.huawei.permission.sec.MDM_APP_MANAGEMENT权限。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
packageNames | 需要移除的APK包名。 |
Return
Type | Description |
|---|---|
void | - |
Throws
Name | Description |
|---|---|
SecurityException |
|
Supported Devices
Device Type | OS Version |
|---|---|
手机、平板 | EMUI 4.1~EMUI 10.1 |
Method |
|---|
public List<String> getDisabledDeactivateMdmPackageList(ComponentName admin) EMUI 11.0.0该方法废弃。 获取禁止反激活名单。 |
Parameters
Name | Description |
|---|---|
admin | 调用该接口的组件名称。 |
Return
Type | Description |
|---|---|
List<String> | 不可反激活的APK包名。 |