当前位置: 代码迷 >> 综合 >> Android 华为推送 android 10.0 获取不到token
  详细解决方案

Android 华为推送 android 10.0 获取不到token

热度:76   发布时间:2024-01-24 16:44:36.0

手机升到10.0的时候,突然收不到推送了,debug 的时候看到:

public void onNewToken(String s) {super.onNewToken(s);Log.i(TAG, "receive token:" + s);}

token ,获取不到,自然也就收不到推送,于是重新看了一遍文档 华为推送文档:

2、EMUI10.0及以上版本的华为设备上,getToken接口直接返回token。如果当次调用失败Push会自动重试申请,成功后则以onNewToken接口返回。
3、低于EMUI10.0的华为设备上,getToken接口如果返回为空,结果后续以onNewToken接口返回。

按照文档的说法,10.0 要在getToken 里去拿:

 private void getToken() {Log.i(TAG, "get token: begin");// get tokennew Thread() {@Overridepublic void run() {try {// read from agconnect-services.jsonString appId = AGConnectServicesConfig.fromContext(MainActivity.this).getString("client/app_id");pushtoken = HmsInstanceId.getInstance(MainActivity.this).getToken(appId, "HCM");if (SdkVersionUtils.checkedAndroid_Q()){OkHttpManager.getInstance().putRegID(pushtoken, RomUtils.getRomInfo().getName(), new NetCallBack() {@Overridepublic void success(String response) {}@Overridepublic void failed(String msg) {}});}if(!TextUtils.isEmpty(pushtoken)) {Log.i(TAG, "get token:" + pushtoken);}} catch (Exception e) {Log.i(TAG,"getToken failed, " + e);}}}.start();}

。。。。。。

  相关解决方案