gpt4 book ai didi

Android - Azure 推送通知 Google FCM

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:14 27 4
gpt4 key购买 nike

我关注了Sending push notifications to Android with Azure Notification Hubs tutorial使用 Azure 通知中心将推送通知实现到我的 Android 应用程序中。

之前,我使用另一个教程来使用 Google Cloud Messaging 服务和 Azure 通知中心来执行此操作,但是当我从 Android Studio 将应用程序发送到我的设备时,我只能收到推送通知。当我构建签名的 APK 并将其安装到我的设备上时,没有收到任何推送通知。

昨天一整天都在尝试让它工作(禁用 ProGuard、尝试不同的 API key 等)后,我决定今天早上重新开始。就在那时,我意识到,当用户从 Cloud Console 单击 GCM 时,Google 现在会将用户定向到 Firebase Cloud Messaging。所以...我已经使用上述教程和 Google FCM 在我的应用程序中实现了推送通知。

它工作得很好......但同样,当我创建签名的 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 下载吗?除此之外,我看不出它可能是什么。

更新

根据 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\"]}"

更新

我刚刚注意到这不仅仅是当我使用签名的 APK 时。在 Android Studio 中,如果我使用“构建 APK”选项生成 APK

enter image description here

然后使用位于 myappfolder/app/build/output/apk/的 app-debug.apk 文件进行安装,推送通知仍然不起作用。仅当我使用“运行”选项从 Android Studio 发送到我的设备时,它们才有效。

最佳答案

经过几天的尝试解决这个问题,结果发现我的 MyHandler 类(负责处理传入的推送的类)没有声明为公共(public)。

将类更改为公共(public)后,推送现在可以在构建和签名的 APK 上运行。

希望有人解释为什么这只会在从 apk 文件安装应用程序时导致问题,因为这部分让我难住了。

关于Android - Azure 推送通知 Google FCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413443/

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