文档管理中心

HmsInstanceId

CLASS info
public class HmsInstanceId extends Object
本类提供了获取AAID的方法以及接入华为推送服务所需令牌(Token)的获取方法。

Public Method Summary

Return typeMethod name
static HmsInstanceId

getInstance(Context context)

获取HmsInstanceId类实例。

String

getId()

同步获取AAID。

Task< AAIDResult >

getAAID()

异步任务获取AAID。

long

getCreationTime()

获取AAID的生成时间戳。

void

deleteAAID()

删除本地已经生成的AAID和生成时间戳。

String

getToken()

不推荐使用本方法,推荐使用getToken(String appId, String scope)方法获取令牌。

String

getToken(String appId, String scope)

获取接入华为推送服务所需的令牌。

void

deleteToken(String appId, String scope)

删除令牌。

Public Methods

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

Parameters

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


Throws

Throw nameThrow desc
NullPointerException入参为空引用导致的异常。


Return

typedesc
static HmsInstanceId实例对象。
Method
public String getId()
同步获取AAID。APP申请Token之前调用本接口获取应用的唯一匿名标识。Push服务端根据AAID生成应用的Token。如果应用的AAID发生变化,下次申请Token时也会生成新的Token。如果APP要上报统计事件,也需要获取AAID作为应用唯一标识。

Return

typedesc
String应用的匿名设备标识。
Method
public Task< AAIDResult > getAAID()
异步任务获取AAID。此接口为异步操作接口,需要添加对应的侦听器来侦听任务执行结果。

Return

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

Sample Code

  1. public void t01_getAAID() {
  2.    Task<AAIDResult> idResult = HmsInstanceId.getInstance(context).getAAID();
  3.    idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
  4.        @Override
  5.        public void onSuccess(AAIDResult aaidResult) {
  6.            String aaid = aaidResult.getId();
  7.            Log.d(TAG, "getAAID success:" + aaid );
  8.        }
  9.    }).addOnFailureListener(new OnFailureListener() {
  10.        @Override
  11.        public void onFailure(Exception e) {
  12.            Log.d(TAG, "getAAID failure:" + e);
  13.        }
  14.    });
  15. }
Method
public long getCreationTime()
获取AAID的生成时间戳。

Return

typedesc
long时间戳,自1970年1月1日0时0分0秒起至AAID生成时间点的时间差,单位毫秒。
Method
public void deleteAAID() throws ApiException
删除本地已经生成的AAID和生成时间戳。

Throws

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

Sample Code

  1. public void t05_deleteAAID() {
  2.    new Thread() {
  3.        @Override
  4.        public void run() {
  5.            try {
  6.                HmsInstanceId.getInstance(context).deleteAAID();
  7.                Log.i(TAG, "deleteAAID ok.");
  8.            } catch (Exception e) {
  9.                Log.i(TAG, "deleteAAID failed!");
  10.            }
  11.        }
  12.    }.start();
  13. }
Method
public String getToken()
注意:
不推荐使用本方法获取令牌,推荐使用getToken(String appId, String scope)方法。

Return

typedesc
String接入华为推送服务所需的令牌。
Method
public String getToken(String appId, String scope) throws ApiException
获取接入华为推送服务所需的令牌。如果本地没有生成AAID,调用本方法会自动生成AAID,Push服务端生成令牌时依赖AAID。此接口为同步接口,请不要在主线程中调用,以免阻塞主线程。

Parameters

Parameter nameParameter desc
appId在AppGallery Connect平台创建应用时分配的APP ID
scope授权范围,开发者目前可传入常量com.huawei.hms.push.HmsMessaging.INSTANCE_ID_SCOPE,即字符串"HCM"


Throws

Throw nameThrow desc
ApiException调用此方法失败产生的一切异常通过本异常类抛出,比如在主线程中调用该方法则抛出ErrorEnum.ERROR_MAIN_THREAD。开发者可以通过ApiException类提供的方法获取错误信息。


Return

typedesc
String接入华为推送服务所需的令牌。

Sample Code

  1. public void sync_getToken() {
  2.    new Thread() {
  3.        @Override
  4.        public void run() {
  5.            try {
  6.                String getToken = HmsInstanceId.getInstance(context).getToken(appid, "HCM");
  7.                Log.d(TAG, "getToken:" + getToken);
  8.            } catch (Exception e) {
  9.                Log.i(TAG, "getToken failed.");
  10.            }
  11.        }
  12.    }.start();
  13. }
Method
public void deleteToken(String appId, String scope) throws ApiException
删除令牌方法,令牌删除不会删除AAID。此接口为同步接口,请不要在主线程中调用,以免阻塞主线程。

Parameters

Parameter nameParameter desc
appId在AppGallery Connect平台创建应用时分配的APP ID
scope授权范围,开发者目前可传入常量com.huawei.hms.push.HmsMessaging.DEFAULT_TOKEN_SCOPE,即字符串"HCM"


Throws

Throw nameThrow desc
ApiException调用此方法失败产生的一切异常通过本异常类抛出,比如在主线程中调用该方法则抛出ErrorEnum.ERROR_MAIN_THREAD。开发者可以通过ApiException类提供的方法获取错误信息。

Sample Code

  1. public void t06_deleteToken() {
  2.    new Thread() {
  3.        @Override
  4.        public void run() {
  5.            try {
  6.                HmsInstanceId.getInstance(context).deleteToken(appid, "HCM");
  7.                Log.i(TAG, "deleteToken ok.");
  8.            } catch (Exception e) {
  9.                Log.i(TAG, "deleteToken failed.");
  10.            }
  11.        }
  12.    }.start();
  13. }
本页面可能包含由第三方许可的内容,请参考具体描述
在 API参考 中进行搜索
请输入您想要搜索的关键词