gpt4 book ai didi

android - 为什么使用华为推送服务无法获取pushToken?

转载 作者:行者123 更新时间:2023-12-04 11:13:18 26 4
gpt4 key购买 nike

我正在使用以下代码 fragment ,但是我仍然无法获得 pushToken。

private void obtainToken() {
// get token
new Thread() {
@Override
public void run() {
try {
String appId = AGConnectServicesConfig.fromContext(MainActivity.this).getString("client/app_id");
pushtoken = HmsInstanceId.getInstance(MainActivity.this).getToken(appId, "HCM");
if(!TextUtils.isEmpty(pushtoken)) {
Log.i(TAG, "get token:" + pushtoken);
}
} catch (Exception e) {
Log.i(TAG,"getToken failed, " + e);

}
}
}.start();
}

最佳答案

有一个日志是完美的,但如果日志中的一切都很好,没有异常并且来自 HCM 的结果代码是成功的,那么请验证您设备的 EMUI 版本。

如果您设备的 EMUI 版本低于 10.0,您使用的代码将返回空推送 token 。在这种情况下,有必要实现一个扩展 HmsMessageService 的自定义服务。

在你的 AndroidManifest.xml 添加;

<service
android:name=".CustomPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>

然后创建以下类;
public class CustomPushService extends HmsMessageService {
private static final String TAG = "PushTokenLog";

@Override
public void onNewToken(String token) {

super.onNewToken(token);
Log.i(TAG, "receive token:" + token);
}
}

最后但同样重要的是,确保您的设备是华为 :) HMS Core 的大部分功能都依赖于 EMUI。如果没有 EMUI,暂时无法保证功能的功能。

下面是查看 HMS Core - EMUI 关系的一个很好的引用。
https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/emui_version_dependent_features

根据问题所有者的评论更新

返回码 907135000 表示您的 SDK 配置不正确。花点时间检查以下几点;
  • 检查agconnect-services.json文件中的app_id和package_name参数是否正确。 app_id 和包名称应与在 AGC 上创建的应用相匹配。另外,考虑重新下载对应的agconnect-service.json
  • 检查 build.gradle 文件中是否配置了证书签名。
  • 该故障可能是HMS Core (APK) 的缓存导致的。卸载再重新安装HMS Core (APK),断开手机并重新连接互联网,然后重新启动应用程序。
  • 关于android - 为什么使用华为推送服务无法获取pushToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61385431/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com