Ire*_* Li 8 android push push-notification huawei-mobile-services huawei-push-notification
我正在使用以下代码片段,但是我仍然无法获取 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();
}
Run Code Online (Sandbox Code Playgroud)
拥有日志就完美了,但如果日志中一切正常,没有异常,并且 HCM 的结果代码成功,则验证设备的 EMUI 版本。
如果您的设备的EMUI版本低于10.0,您使用的代码将返回空的推送令牌。在这种情况下,需要实现一个扩展HmsMessageService的自定义服务。
在您的 AndroidManifest.xml 添加;
<service
android:name=".CustomPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
然后创建以下类;
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);
}
}
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的一点是,请确保您的设备是华为:) HMS Core 的大部分功能都依赖于 EMUI。如果没有EMUI,目前无法保证功能的正常运行。
下面是查看 HMS Core - EMUI 关系的一个很好的参考。 https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/emui_version_dependent_features
根据问题所有者的评论更新
返回码907135000表示您的SDK配置不正确。花点时间检查以下几点;
| 归档时间: |
|
| 查看次数: |
5275 次 |
| 最近记录: |