合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
Class Info |
|---|
public class HmsInstanceId 本类提供了获取AAID和推送服务Token的方法。 |
Qualifier and Type | Method Name and Description |
|---|---|
static HmsInstanceId | getInstance(Context context) 获取HmsInstanceId类实例。 |
String | getId() 同步获取AAID。 |
getAAID() 异步任务获取AAID。 | |
long | 获取AAID的生成时间戳。 |
void | 删除本地生成的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的方法。 |
Parameters
Name | Description |
|---|---|
context | 应用上下文。 |
Returns
Type | Description |
|---|---|
HmsInstanceId | 实例对象。 |
Throws
Name | Description |
|---|---|
NullPointerException | 入参为空引用导致的异常。 |
Method |
|---|
public String getId() 同步获取AAID。应用申请Token之前调用本接口获取AAID。Push服务端根据AAID生成应用的Token。如果应用的AAID发生变化,下次申请Token时也会生成新的Token。 应用如果要上报统计事件,也需要获取AAID作为应用唯一标识。 |
Returns
Type | Description |
|---|---|
String | AAID。 |
Method |
|---|
public Task<AAIDResult> getAAID() 异步任务获取AAID。此接口为异步操作接口,需要添加对应的侦听器来侦听任务执行结果。 |
Returns
Type | Description |
|---|---|
接口调用结果为Task<AAIDResult>类型,您需要添加对应的侦听器来侦听任务执行结果。任务执行成功后可以使用AAIDResult中的getId()方法获取AAID字符串。 |
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")
}
}Method |
|---|
public long getCreationTime() 获取AAID的生成时间戳。 |
Returns
Type | Description |
|---|---|
long | 时间戳,自1970年1月1日0时0分0秒起至AAID生成时间点的时间差,单位:毫秒。 |
Method |
|---|
public void deleteAAID() throws ApiException 删除本地生成的AAID与时间戳并同步删除已生成的与本AAID相关的所有Token。 此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。 |
Throws
Name | Description |
|---|---|
调用此方法失败产生的一切异常都通过本异常类抛出。您可以通过ApiException类提供的方法获取错误信息。 |
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()
}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 |
|---|---|
调用此方法失败产生的一切异常通过本异常类抛出。比如在主线程中调用该方法则抛出907122050错误码,您可以通过ApiException类提供的方法获取错误信息。 |
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 |
|---|---|
调用此方法失败产生的一切异常通过本异常类抛出。 |
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 |
|---|---|
调用此方法失败产生的一切异常通过本异常类抛出,比如在主线程中调用该方法则抛出907122050错误码。您可以通过ApiException类提供的方法获取错误信息。 |
Method |
|---|
public void deleteToken(String subjectId) throws ApiException 在多发送者场景下,目标应用为发送者注销Token的方法,subjectId需要传入AppGallery Connect中发送者的项目ID。 此接口为同步接口,在主线程中请勿调用此接口,以免阻塞主线程。 |
Parameters
Name | Description |
|---|---|
subjectId | 发送者的项目ID,登录AppGallery Connect网站,选择“我的项目”,在项目列表中选择对应的项目,左侧导航栏选择“项目设置”,在该页面获取发送者的项目ID。 |
Throws
Name | Description |
|---|---|
调用此方法失败产生的一切异常通过本异常类抛出。 |