文档管理中心
我的
您当前正在浏览HarmonyOS 3.1/4.0及以下版本的文档,如需查阅HarmonyOS 5.0及以上文档请参考API参考。
API参考推送服务Androidcom.huawei.hms.aaidClass SummaryHmsInstanceId

HmsInstanceId

  • 支持的场景:手机、平板。
  • 支持的OS:EMUI 3.0及以上,Android 4.4及以上。
展开

Class Info

public class HmsInstanceId

本类提供了获取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。

说明

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

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类对象实例,如果该实例不存在,则会创建实例。只有获取到实例后才能调用本类中的其他方法,例如getId、getToken等。

Parameters

展开

Name

Description

context

应用上下文。

Returns

展开

Type

Description

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
public void getAAID() {
    Task<AAIDResult> idResult = HmsInstanceId.getInstance(context).getAAID();
    idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
        @Override
        public void onSuccess(AAIDResult aaidResult) {
            // 获取AAID方法成功
            String aaid = aaidResult.getId();
            Log.d(TAG, "getAAID success:" + aaid );
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(Exception e) {
            // 获取AAID失败
            Log.d(TAG, "getAAID failure:" + e);
        }
    });
}
fun getAAID() {
    val idResult = HmsInstanceId.getInstance(context).aaid
    idResult.addOnSuccessListener{ aaidResult ->        
        // 获取AAID成功
        Log.d(TAG, "getAAID success, the aaid is " + aaidResult.getId())        
    }.addOnFailureListener{ exception ->        
        // 获取AAID失败
        Log.d(TAG, "getAAID failed, catch exception: $exception")
    }
}

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
public void deleteAAID() {
    // 创建新线程
    new Thread() {
        @Override
        public void run() {
            try {
                // 删除AAID
                HmsInstanceId.getInstance(context).deleteAAID();
                Log.i(TAG, "deleteAAID ok.");
            } catch (Exception e) {
                Log.i(TAG, "deleteAAID failed! Catch exception : " + e);
            }
        }
    }.start();
}
fun deleteAAID() {
    // 创建新线程
    object : Thread() {
        override fun run() {
            try {
                // 删除AAID
                HmsInstanceId.getInstance(context).deleteAAID()
                Log.i(TAG, "deleteAAID successfully.")
            } catch (e: Exception) {
                Log.i(TAG, "deleteAAID failed! Catch exception : $e")
            }
        }
    }.start()
}

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

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