智能客服
你问我答,随时在线为你解决问题
多发送者功能支持的OS为EMUI 9.1.0+。
Class Info |
|---|
public class HmsInstanceId extends Object 本类提供了获取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。 |
void |
deleteToken(String appId, String scope) 删除Token。 |
void |
deleteToken(String subjectId) 多发送者场景下,目标应用为发送者注销Token的方法。 |
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 |
入参为空引用导致的异常。 |
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()
- }
该接口已废弃,请使用getToken(String appId, String scope)方法。
Method |
|---|
public String getToken() 获取接入推送服务所需的Token。 |
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 |
|---|---|
调用此方法失败产生的一切异常通过本异常类抛出。 |