标签: huawei-push-notification

Google 拒绝对隐式 PendingIntent 漏洞进行补救更新

当我尝试更新我的应用程序时 - 在审核过程中出现错误。隐式 PendingIntent 漏洞的修复 - https://support.google.com/faqs/answer/10437428。在我的应用程序中,我正在创建 PendingIntent - 用于 Firebase 推送通知:

内部类 FCMService 扩展了 FirebaseMessagingService

@Override
    public void onMessageReceived(@NotNull RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        Intent intent = new Intent(this, ApplicationActivity.class);
        intent.setAction("com.google.firebase.MESSAGING_EVENT");
        intent.setPackage(getApplicationContext().getPackageName());

        Map<String, String> data = remoteMessage.getData();
        for (Map.Entry<String, String> entry : data.entrySet()) {
            String value = entry.getValue();
            String key = entry.getKey();
            if (key.equals(ApplicationActivity.LINK_URL) ||
                    key.equals(ApplicationActivity.FLOCKTORY_LINK_URL)) {
                intent.putExtra(ApplicationActivity.FLOCKTORY_LINK_URL, value);
                if (remoteMessage.getNotification() != null && remoteMessage.getNotification().getTitle() != null) {
                    intent.putExtra(ApplicationActivity.HMS_PUSH_TITLE, remoteMessage.getNotification().getTitle());
                }
            }
        }

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, …
Run Code Online (Sandbox Code Playgroud)

java android google-play huawei-mobile-services huawei-push-notification

26
推荐指数
2
解决办法
1594
查看次数

华为推送-com.huawei.hms.common.ApiException: 6003: 证书指纹错误

我收到“推送令牌失败,com.huawei.hms.common.ApiException:6003:证书指纹错误”。我不知道这里发生了什么事。

huawei-mobile-services huawei-developers huawei-push-notification

9
推荐指数
1
解决办法
6398
查看次数

为什么使用华为推送工具获取不到pushToken?

我正在使用以下代码片段,但是我仍然无法获取 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)

android push push-notification huawei-mobile-services huawei-push-notification

8
推荐指数
1
解决办法
5275
查看次数

华为 HMS 初始化没有 Json 文件

是否可以在没有初始化的情况下初始化 HMS agconnect-services.json并在运行时提供密钥?

使用类似的服务 (Fcm),我们可以初始化一个应用程序:

val builder = FirebaseOptions.Builder()
          .setApiKey(apiKey)
          .setGcmSenderId(senderId)
          .setProjectId(project)
          .setApplicationId(appId)
FirebaseApp.initializeApp(context, builder.build())
Run Code Online (Sandbox Code Playgroud)

因此,您无需json解析文件即可使用它。

是否有类似的解决方案使用HMSand AppGallery

顺便说一句,我正在尝试实现PushKit

huawei-mobile-services huawei-push-notification

8
推荐指数
1
解决办法
257
查看次数

HmsMessageService onMessageReceived 未调用

我实现了华为Push Kit。onNewToken 在应用程序启动后调用。我想使用 onMessageReceived。

当我向客户端发送推送通知时,推送通知出现在 android 上,但 onMessageReceived 未触发。

我将以下代码添加到 Android Manifest

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

    <meta-data
        android:name="push_kit_auto_init_enabled"
        android:value="true" />
Run Code Online (Sandbox Code Playgroud)

我的简单课程是;

public class HmsMessageSrv extends HmsMessageService {

    @Override
    public void onNewToken(String s) {
        super.onNewToken(s);
        Log.i("HmsMessageService", s);
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Log.i("HmsMessageService", "onMessageReceived");
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在收到推送通知时触发 onMessageReceived 函数。

android push-notification huawei-mobile-services huawei-developers huawei-push-notification

8
推荐指数
1
解决办法
2523
查看次数

华为推送套件:令牌在华为手机上返回空

我最近在华为手机上试用了我的应用程序。

问题是 PushKit 不返回令牌并且getToken结果为空。

在我得到的日志中GetTokenTask receive a empty token, please check HmsMessageService.onNewToken receive result.也没有给出令牌onNewToken

检索令牌的代码:

GlobalScope.launch(context = Dispatchers.IO) {
    try {
        val appId = AGConnectServicesConfig.fromContext(this@MainActivity).getString("client/app_id")
        val token = HmsInstanceId.getInstance(this@MainActivity).getToken(appId, "HCM")
        Pulp.debug("Huawei", "Token received") {
            "token" to token
        }
    } catch (e: java.lang.Exception) {
        Pulp.error("Huawei", "Failed to fetch token", e) {
            "Cause" to (e.message ?: "Empty")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果也不例外。但是令牌是空的(请参阅日志的最后一行)。

中的代码HMSService

override fun onNewToken(token: String?) {
    super.onNewToken(token)
    Pulp.debug("Huawei", "(onNewToken): Huawei messaging …
Run Code Online (Sandbox Code Playgroud)

android huawei-mobile-services huawei-push-notification

7
推荐指数
1
解决办法
1482
查看次数

在中国如何推送通知?

我正在香港与react-native 合作,但我的目标国家是中国。我需要在中国处理推送通知 不管怎样,可以帮我在没有 GCM 的情况下推送 Android 和华为的通知吗?谢谢大家!

android push-notification react-native huawei-mobile-services huawei-push-notification

7
推荐指数
1
解决办法
2005
查看次数

Push Kit 何时会包含 Android 12 所需的 android:exported 属性?

最新版本的 Push Kit (5.3.0.304) 在针对 Android 12 进行编译时显示错误:

安装失败,原因是:“INSTALL_PARSE_FAILED_MANIFEST_MALFORMED:installPackageLI期间解析失败:/data/app/vmdl520427088.tmp/base.apk(在二进制XML文件行#349):com.huawei.hms.support.api.push.PushMsgReceiver:目标S+(版本 10000 及更高版本)要求在存在意图过滤器时定义 android:exported 的显式值'

出现此错误的原因是 Android 12 要求所有意图过滤器包含 android:exported 属性。这在 Android 12 更改页面上公开:https://developer.android.com/about/versions/12/behavior-changes-12#exported

包含此更改的 Push Kit 版本的大致发布日期是多少?

android push-notification kotlin huawei-mobile-services huawei-push-notification

5
推荐指数
1
解决办法
2058
查看次数

Flutter项目添加华为agconnect后构建失败

添加“com.huawei.agconnect”插件后,我的 flutter 项目无法构建:

失败:构建失败并出现异常。

出了什么问题:任务“:app:processDebugResources”执行失败。执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生失败

Android 资源链接失败 C:\Users\denbo.gradle\caches\transforms-2\files-2.1\2f7fef5146433a886db0a4b7a0dabd3c\push-5.1.1.301\AndroidManifest.xml:9:5-11:55: AAPT: 错误: 资源 attr/ ??? (又名 com.example.app:attr/???)未找到。

我的 android/build.gradle

buildscript {
    ext.kotlin_version = '1.3.61'
    repositories {
        google()
        jcenter()
        maven { url 'https://developer.huawei.com/repo/' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'com.huawei.agconnect:agcp:1.4.2.301'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://developer.huawei.com/repo/' }
    }
}
Run Code Online (Sandbox Code Playgroud)

android/app/build.gradle

//stuff
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.huawei.agconnect'
Run Code Online (Sandbox Code Playgroud)

android push-notification flutter huawei-mobile-services huawei-push-notification

5
推荐指数
1
解决办法
293
查看次数

如何让“onMessageReceived”触发 React Native 中的通知(HMS 推送工具包)?

我正在尝试读取通知的有效负载,但该事件不会触发。它适用于数据消息,但似乎没有注意到通知。

安卓清单:

        <service
            android:name="com.huawei.hms.push.react.RNHmsMessageService"
            android:exported="true">
            <intent-filter>
                <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <receiver android:name="com.huawei.hms.push.react.RNReceiver"/>
        <meta-data
            android:name="push_kit_auto_init_enabled"
            android:value="true" />
Run Code Online (Sandbox Code Playgroud)

RNHms消息服务

public void onMessageReceived(RemoteMessage message) {
        Log.i(TAG, "onMessageReceived is called");
        if (message == null) {
            Log.e(TAG, "Received message entity is null!");
            return;
        }

        Log.i(TAG, "getCollapseKey: " + message.getCollapseKey()...

        RemoteMessage.Notification notification = message.getNotification();
        if (notification != null) {
            Log.i(TAG, "\n getImageUrl: " + notification.getImageUrl()...
        }

        Boolean judgeWhetherIn10s = false;
        // If the messages are not processed in 10 seconds, the app needs to use …
Run Code Online (Sandbox Code Playgroud)

android react-native huawei-mobile-services huawei-push-notification

3
推荐指数
1
解决办法
1581
查看次数