Android – Azure推送通知Google FCM

我已经按照Sending push notifications to Android with Azure Notification Hubs tutorial使用Azure通知中心将推送通知实现到我的Android应用程序中.

以前,我使用另一个教程使用带有Azure Notification Hub的Google Cloud Messaging服务来执行此操作,但是当我从Android Studio将应用程序发送到设备时,我只能获得推送通知.当我构建一个已签名的APK并将其安装在我的设备上时,没有推送通知.

在昨天整天尝试使其工作(禁用ProGuard,尝试不同的API密钥等)后,我决定今天早上重新开始.就在那时,我意识到Google现在会在用户从云端控制台点击GCM时将用户引导至Firebase云消息传递.所以…我已经使用上面的教程和Google FCM将Push Notifications实现到我的应用程序中.

它工作得很好….但是,当我创建一个签名的APK并在我的设备上安装它而不是从Android Studio将应用程序发送到我的设备时,我没有得到推送通知. Azure显示推送已成功发送,但没有任何结果.

在我的推送处理程序中,我有一个登录控制台的日志,如下面的onReceive方法所示.当我从Android Studio运行应用程序时,这被称为正常,并且应该通过推送来实现.但是当我创建签名的apk并从中运行时,onReceive方法不会被调用,也没有推送.

@Override
    public void onReceive(Context context, Bundle bundle) {

        Log.d("TAG","TRIGGERED");

        ctx = context;
        String nhMessage = bundle.getString("message");
        String nhTitle = bundle.containsKey("title") ? bundle.getString("title") : "Title";
        String nhBadge = bundle.containsKey("badge") ? bundle.getString("badge") : null ;
        sendNotification(nhMessage,nhTitle,nhBadge);
        if (Main.isVisible) { Main.mainActivity.ToastNotify(nhMessage); }
    }

有人请帮帮我.我错过了什么?????
是因为我正在直接安装APK吗?是否必须从Google Play下载?除此之外,我不知道它可能是什么.

UPDATE

根据Nikita G的建议,我遵循了instructions to send a test push from the command line using cURL.
 我得到的回复是以下(看起来像一个成功的消息)但是我的设备没有推送.

{"multicast_id":6722521883082447284,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473693614087201%06fb35f0f9fd7ecd"}]}

我的cURL请求看起来像这样,就像教程所示.

curl --header "Authorization: key=XXXXXXXXXXXX" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"fs...Tw:APA...SzXha\"]}"

UPDATE

我只是注意到它不仅仅是在我使用SIGNED APK时.在Android Studio中,如果我使用Build APK选项生成APK

enter image description here

然后使用位于myappfolder / app / build / output / apk /的app-debug.apk文件安装,推送通知仍然无效.如果我使用“运行”选项从Android Studio发送到我的设备,它们只能工作.

最佳答案
经过几天试图解决这个问题,结果发现我的MyHandler类,它是负责处理通过的推送的类,并未声明为公共类.

将类更改为public后,push现在可用于构建和签名apks.

希望有人解释为什么这只会导致从apk文件安装应用程序时出现问题,因为该部分让我难倒.

转载注明原文:Android – Azure推送通知Google FCM - 代码日志