文档管理中心
API参考设备标识服务Androidcom.huawei.hms.aaidClass SummaryHmsInstanceId

HmsInstanceId

  • 支持的场景:手机、平板。
  • 支持的OS:EMUI 4.0+、Android 4.0+。
说明

多发送者功能支持的OS为EMUI 9.1.0+。

展开

Class Info

public class HmsInstanceId extends Object

本类提供了获取AAID以及接入推送服务所需Token的方法。

Public Method Summary

展开

Qualifier and Type

Method Name and Description

static HmsInstanceId

getInstance(Context context)

获取HmsInstanceId类实例。

String

getId()

同步获取AAID。

Task<AAIDResult>

getAAID()

异步任务获取AAID。

long

getCreationTime()

获取AAID的生成时间戳。

void

deleteAAID()

删除本地生成的AAID与时间戳并同步删除已生成的与本AAID相关的所有Token。

String

getToken()

注意

该接口已废弃,请使用getToken(String appId, String scope)方法获取Token。

String

getToken(String appId, String scope)

获取接入推送服务所需的Token。

String

getToken(String subjectId)

多发送者场景下,目标应用为发送者申请接入推送服务所需的Token。

void

deleteToken(String appId, String scope)

删除Token。

void

deleteToken(String subjectId)

多发送者场景下,目标应用为发送者注销Token的方法。

Public Methods

getInstance(Context context)

展开

Method

public static HmsInstanceId getInstance(Context context)

获取HmsInstanceId类对象实例,如果该实例不存在,则会创建实例。只有获取到实例后才能调用本类中的其他方法,例如getIdgetToken等。

Parameters

展开

Name

Description

context

应用上下文。

说明

应用集成HMS Core SDK最新版本需要满足HMS Core(APK)的版本不低于3.0.0。如果低于3.0.0版本,当应用有前台界面时HMS Core SDK会提示用户升级HMS Core(APK)为最新版本,此时getInstance的入参必须传入Activity类实例;当应用是后台应用时,如果您不想弹出引导升级的页面时,可以传入非Activity类型的Context类实例。

Returns

展开

Type

Description

static HmsInstanceId

实例对象。

Throws

展开

Name

Description

NullPointerException

入参为空引用导致的异常。

getId

展开

Method

public String getId()

同步获取AAID。应用申请Token之前调用本接口获取AAID。Push服务端根据AAID生成应用的Token。如果应用的AAID发生变化,下次申请Token时也会生成新的Token。

应用如果要上报统计事件,也需要获取AAID作为应用唯一标识。

Returns

展开

Type

Description

String

AAID。

getAAID

展开

Method

public Task<AAIDResult> getAAID()

异步任务获取AAID。此接口为异步操作接口,需要添加对应的侦听器来侦听任务执行结果。

Returns

展开

Type

Description

Task<AAIDResult>

接口调用结果为Task<AAIDResult>类型,您需要添加对应的侦听器来侦听任务执行结果。任务执行成功后可以使用AAIDResult中的getId()方法获取AAID字符串。

Java
Kotlin
收起
自动换行
深色代码主题
复制
  1. public void getAAID() {
  2. Task<AAIDResult> idResult = HmsInstanceId.getInstance(context).getAAID();
  3. idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
  4. @Override
  5. public void onSuccess(AAIDResult aaidResult) {
  6. // 获取AAID方法成功
  7. String aaid = aaidResult.getId();
  8. Log.d(TAG, "getAAID success:" + aaid );
  9. }
  10. }).addOnFailureListener(new OnFailureListener() {
  11. @Override
  12. public void onFailure(Exception e) {
  13. // 获取AAID失败
  14. Log.d(TAG, "getAAID failure:" + e);
  15. }
  16. });
  17. }
收起
自动换行
深色代码主题
复制
  1. fun getAAID() {
  2. val idResult = HmsInstanceId.getInstance(context).aaid
  3. idResult.addOnSuccessListener{ aaidResult ->
  4. // 获取AAID成功
  5. Log.d(TAG, "getAAID success, the aaid is " + aaidResult.getId())
  6. }.addOnFailureListener{ exception ->
  7. // 获取AAID失败
  8. Log.d(TAG, "getAAID failed, catch exception: $exception")
  9. }
  10. }

getCreationTime

展开

Method

public long getCreationTime()

获取AAID的生成时间戳。

Returns

展开

Type

Description

long

时间戳,自1970年1月1日0时0分0秒起至AAID生成时间点的时间差,单位:毫秒。

deleteAAID

展开

Method

public void deleteAAID() throws ApiException

删除本地生成的AAID与时间戳并同步删除已生成的与本AAID相关的所有Token。

此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。

Throws

展开

Name

Description

ApiException

调用此方法失败产生的一切异常都通过本异常类抛出。您可以通过ApiException类提供的方法获取错误信息。

Java
Kotlin
收起
自动换行
深色代码主题
复制
  1. public void deleteAAID() {
  2. // 创建新线程
  3. new Thread() {
  4. @Override
  5. public void run() {
  6. try {
  7. // 删除AAID
  8. HmsInstanceId.getInstance(context).deleteAAID();
  9. Log.i(TAG, "deleteAAID ok.");
  10. } catch (Exception e) {
  11. Log.i(TAG, "deleteAAID failed! Catch exception : " + e);
  12. }
  13. }
  14. }.start();
  15. }
收起
自动换行
深色代码主题
复制
  1. fun deleteAAID() {
  2. // 创建新线程
  3. object : Thread() {
  4. override fun run() {
  5. try {
  6. // 删除AAID
  7. HmsInstanceId.getInstance(context).deleteAAID()
  8. Log.i(TAG, "deleteAAID successfully.")
  9. } catch (e: Exception) {
  10. Log.i(TAG, "deleteAAID failed! Catch exception : $e")
  11. }
  12. }
  13. }.start()
  14. }

getToken(Deprecated)

注意

该接口已废弃,请使用getToken(String appId, String scope)方法。

展开

Method

public String getToken()

获取接入推送服务所需的Token。

getToken(String appId, String scope)

展开

Method

public String getToken(String appId, String scope) throws ApiException

获取接入推送服务所需的Token。如果本地没有生成AAID,调用本方法会自动生成AAID,Push服务端生成Token时依赖AAID。此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。

Parameters

展开

Name

Description

appId

在AppGallery Connect平台创建应用时分配的APP ID。

scope

授权范围,您目前可传入常量DEFAULT_TOKEN_SCOPE,即字符串“HCM”

Returns

展开

Type

Description

String

接入推送服务所需的Token。

Throws

展开

Name

Description

ApiException

调用此方法失败产生的一切异常通过本异常类抛出,比如在主线程中调用该方法则抛出907122050错误码。您可以通过ApiException类提供的方法获取错误信息。

getToken(String subjectId)

展开

Method

public String getToken(String subjectId) throws ApiException

在多发送者场景下,目标应用给发送者申请Token的方法,subjectId需要传入AppGallery Connect中发送者的项目ID。

此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。

Parameters

展开

Name

Description

subjectId

发送者的项目ID,登录AppGallery Connect网站,选择“我的项目”,在项目列表中选择对应的项目,左侧导航栏选择“项目设置”,在该页面获取发送者的项目ID。

Returns

展开

Type

Description

String

您的应用接入推送服务所需的Token。

Throws

展开

Name

Description

ApiException

调用此方法失败产生的一切异常通过本异常类抛出。

deleteToken(String appId, String scope)

展开

Method

public void deleteToken(String appId, String scope) throws ApiException

删除Token方法,调用本方法仅删除Token,不会删除AAID。此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。

Parameters

展开

Name

Description

appId

AppGallery Connect平台创建应用时分配的APP ID。

scope

授权范围,您目前可传入常量DEFAULT_TOKEN_SCOPE,即字符串“HCM”

Throws

展开

Name

Description

ApiException

调用此方法失败产生的一切异常通过本异常类抛出,比如在主线程中调用该方法则抛出907122050错误码。您可以通过ApiException类提供的方法获取错误信息。

deleteToken(String subjectId)

展开

Method

public void deleteToken(String subjectId) throws ApiException

在多发送者场景下,目标应用给发送者注销Token方法,subjectId需要传入AppGallery Connect中发送者的项目ID。

此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。

Parameters

展开

Name

Description

subjectId

发送者的项目ID,登录AppGallery Connect网站,选择“我的项目”,在项目列表中选择对应的项目,左侧导航栏选择“项目设置”,在该页面获取发送者的项目ID。

Throws

展开

Name

Description

ApiException

调用此方法失败产生的一切异常通过本异常类抛出。

在 API参考 中进行搜索
请输入您想要搜索的关键词