@ohos.bundle.defaultAppManager (默认应用管理)(系统接口)

本模块提供查询,设置和重置默认应用的能力,支持查询当前应用是否是默认应用。

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

当前页面仅包含本模块的系统接口,其他公开接口参见@ohos.bundle.defaultAppManager

导入模块

import { defaultAppManager } from '@kit.AbilityKit';

defaultAppManager.getDefaultApplication

getDefaultApplication(type: string, userId?: number): Promise<BundleInfo>

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型获取默认应用信息。使用Promise异步回调。

需要权限: ohos.permission.GET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要查询的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

返回值:

类型 说明
Promise<BundleInfo> Promise对象,返回默认应用包信息。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700023 The specified default app does not exist.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER)
  .then((data) => {
    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.getDefaultApplication("image/png")
  .then((data) => {
    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI)
  .then((data) => {
    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.getDefaultApplication

getDefaultApplication(type: string, userId: number, callback: AsyncCallback<BundleInfo>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型获取默认应用信息。使用callback异步回调。

需要权限: ohos.permission.GET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要查询的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<BundleInfo> 回调函数,当获取成功时,err为null,data为获取到的应用信息;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700023 The specified default app does not exist.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let userId = 100;
defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplication("image/png", userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplication

getDefaultApplication(type: string, callback: AsyncCallback<BundleInfo>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型获取默认应用信息。使用callback异步回调。

需要权限: ohos.permission.GET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要查询的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
callback AsyncCallback<BundleInfo> 回调函数,当获取成功时,err为null,data为获取到的应用信息;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700023 The specified default app does not exist.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplication("image/png", (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
});

defaultAppManager.getDefaultApplicationSync10+

getDefaultApplicationSync(type: string, userId?: number): BundleInfo

以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型获取默认应用信息,使用BundleInfo返回结果。

需要权限: ohos.permission.GET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要查询的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

返回值:

类型 说明
BundleInfo 返回的默认应用包信息。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700023 The specified default app does not exist.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

try {
  let data = defaultAppManager.getDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER)
  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  let data = defaultAppManager.getDefaultApplicationSync("image/png")
  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  let data = defaultAppManager.getDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI)
  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

defaultAppManager.setDefaultApplication

setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise<void>

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型设置默认应用。使用Promise异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要设置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
elementName ElementName 要设置为默认应用的组件信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.
17700028 The specified ability does not match the type.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}).then((data) => {
  console.info('Operation successful.');
}).catch((error: BusinessError) => {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
});

let userId = 100;
defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId).then((data) => {
  console.info('Operation successful.');
}).catch((error: BusinessError) => {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
});

defaultAppManager.setDefaultApplication("image/png", {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId).then((data) => {
  console.info('Operation successful.');
}).catch((error: BusinessError) => {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
});

defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId).then((data) => {
  console.info('Operation successful.');
}).catch((error: BusinessError) => {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
});

defaultAppManager.setDefaultApplication

setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback<void>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型设置默认应用。使用callback异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要设置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
elementName ElementName 要设置为默认应用的组件信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<void> 回调函数,当设置默认应用成功时,err返回null。否则回调函数返回具体错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.
17700028 The specified ability does not match the type.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let userId = 100;
defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplication("image/png", {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplication

setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback<void>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型设置默认应用。使用callback异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要设置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
elementName ElementName 要设置为默认应用的组件信息。
callback AsyncCallback<void> 回调函数,当设置默认应用成功时,err返回null。否则回调函数返回具体错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700025 The specified type is invalid.
17700028 The specified ability does not match the type.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplication("image/png", {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
  bundleName: "com.example.myapplication",
  moduleName: "module01",
  abilityName: "EntryAbility"
}, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.setDefaultApplicationSync10+

setDefaultApplicationSync(type: string, elementName: ElementName, userId?: number): void

以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型设置默认应用。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要设置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
elementName ElementName 要设置为默认应用的组件信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.
17700028 The specified ability does not match the type.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

try {
  defaultAppManager.setDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, {
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  });
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

let userId = 100;
try {
  defaultAppManager.setDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, {
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.setDefaultApplicationSync("image/png", {
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.setDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI, {
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

defaultAppManager.resetDefaultApplication

resetDefaultApplication(type: string, userId?: number): Promise<void>

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型重置默认应用。使用Promise异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要重置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let userId = 100;
defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId)
  .then((data) => {
    console.info('Operation successful.');
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.resetDefaultApplication("image/png", userId)
  .then((data) => {
    console.info('Operation successful.');
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId)
  .then((data) => {
    console.info('Operation successful.');
  })
  .catch((error: BusinessError) => {
    console.error('Operation failed. Cause: ' + JSON.stringify(error));
  });

defaultAppManager.resetDefaultApplication

resetDefaultApplication(type: string, userId: number, callback: AsyncCallback<void>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型重置默认应用。使用callback异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要重置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<void> 回调函数,当重置默认应用成功时,err返回null。否则回调函数返回具体错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let userId = 100;
defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId,
  (err: BusinessError, data) => {
    if (err) {
      console.error('Operation failed. Cause: ' + JSON.stringify(err));
      return;
    }
    console.info('Operation successful.');
  });

defaultAppManager.resetDefaultApplication("image/png", userId, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId,
  (err: BusinessError, data) => {
    if (err) {
      console.error('Operation failed. Cause: ' + JSON.stringify(err));
      return;
    }
    console.info('Operation successful.');
  });

defaultAppManager.resetDefaultApplication

resetDefaultApplication(type: string, callback: AsyncCallback<void>) : void

根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型重置默认应用。使用callback异步回调。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要重置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
callback AsyncCallback<void> 回调函数,当重置默认应用成功时,err返回null。否则回调函数返回具体错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.resetDefaultApplication("image/png", (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, (err: BusinessError, data) => {
  if (err) {
    console.error('Operation failed. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Operation successful.');
});

defaultAppManager.resetDefaultApplicationSync10+

resetDefaultApplicationSync(type: string, userId?: number): void

以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者UniformDataType类型重置默认应用。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要重置的应用类型,取ApplicationType中的值,或者符合媒体类型格式的文件类型,或者UniformDataType类型。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。默认值:调用方所在用户。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700004 The specified user ID is not found.
17700025 The specified type is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let userId = 100;
try {
  defaultAppManager.resetDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.resetDefaultApplicationSync("image/png", userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.resetDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

defaultAppManager.setDefaultApplicationForAppClone23+

setDefaultApplicationForAppClone(type: string, elementName: ElementName, appIndex: number, userId?: number): void

以同步方法将分身应用设置为打开相应type类型的默认应用。

需要权限: ohos.permission.SET_DEFAULT_APPLICATION 或 (ohos.permission.SET_DEFAULT_APPLICATION 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS)

  • 当userId为当前用户时,需要申请ohos.permission.SET_DEFAULT_APPLICATION。
  • 当userId不是当前用户时,需要同时申请ohos.permission.SET_DEFAULT_APPLICATION 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

系统能力: SystemCapability.BundleManager.BundleFramework.DefaultApp

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 要设置的应用类型,支持取值包括:ApplicationType中的值、MIMEType类型、或UniformDataType类型。
elementName ElementName 要设置为默认应用的组件信息,仅使用其中的bundleName、abilityName、moduleName属性,且三个属性必须设置。
appIndex number 表示分身应用的索引。
取值范围:1、2、3、4、5。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。
默认值:调用方所在用户Id。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. A non-system application is not allowed to call a system API.
801 Capability not supported.
17700004 The specified user id is not found.
17700025 The specified type is invalid.
17700028 The specified ability and type do not match.
17700061 The specified app index is invalid.

示例:

import { defaultAppManager } from '@kit.AbilityKit';
import { uniformTypeDescriptor } from '@kit.ArkData';

let appIndex = 1;
try {
  defaultAppManager.setDefaultApplicationForAppClone(defaultAppManager.ApplicationType.BROWSER, {
    // 请开发者替换为实际的bundleName、moduleName和abilityName
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, appIndex);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

let userId = 100;
try {
  defaultAppManager.setDefaultApplicationForAppClone(defaultAppManager.ApplicationType.BROWSER, {
    // 请开发者替换为实际的bundleName、moduleName和abilityName
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, appIndex, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.setDefaultApplicationForAppClone("image/png", {
    // 请开发者替换为实际的bundleName、moduleName和abilityName
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, appIndex, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};

try {
  defaultAppManager.setDefaultApplicationForAppClone(uniformTypeDescriptor.UniformDataType.AVI, {
    // 请开发者替换为实际的bundleName、moduleName和abilityName
    bundleName: "com.example.myapplication",
    moduleName: "module01",
    abilityName: "EntryAbility"
  }, appIndex, userId);
  console.info('Operation successful.');
} catch (error) {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
};