当前位置: 首页 > 知识库问答 >
问题:

android - app是怎么主动发送通知给手机的 就算你没有启动这个app?

仉俊能
2023-11-09

app主动发送通知这点是怎么做的 很好奇

共有2个答案

祁驰
2023-11-09

主要分为两个主流平台 Android,IOS 这两家其实都提供了 push 的功能,也就是开发者能通过调用系统的api,系统接收推送消息。

  • Android 上有 GCM (Google Cloud Messaging)
  • iOS 上有 APNs(Apple Push Notification service)

所以其实应用并不需要启动就能收到消息,因为处理通知消息的是系统,但是 Android 的GCM是依赖于 Google 服务,因为大家都知道的原因,安卓的GCM基本是处于不可用的状态,各大平台厂商开始了骚操作。

国内各大平台陆续推出了GCM的替代品但是基本都是各自为战,
有系统级的推送服务比如小米,华为,OPPO,他们都做了推送系统服务,你应用接入相关sdk,就能使用系统的推送服务,也可以实现应用没启动来收到消息,但是你需要接入各个系统的sdk,而且不一定每个系统都会做推送服务,毕竟国内的安卓百花争艳。

也有应用级的系统服务,比如说腾讯做了推送服务,在以前一个平台的app可以做到相互拉起,唤醒,保活 只要有一个腾讯系的产品在,就能收到消息。

推送服务商是绝大部分 APP 都会优先考虑采用方案,目前应用最为广泛的第三方推送服务提供商包括个推、极光、友盟、小米、华为、BAT 等。有这些服务商,开发者也就不需要整合这么sdk,直接有服务商整合完成,开发者只需要调用一个接口就行了。

丰景同
2023-11-09

当应用程序需要向用户发送通知时,无论应用程序是否在后台运行,都可以使用推送通知(Push Notification)来实现。

推送通知是一种由应用程序服务器发送的消息,用于向移动设备上的应用程序传递信息。应用程序可以通过操作系统提供的推送通知服务接收这些消息,并在接收到消息后采取相应的操作。

以下是应用程序如何实现主动发送通知给手机的一些基本步骤:

  1. 注册应用程序:在应用程序开发过程中,你需要向操作系统注册应用程序以接收推送通知。在 iOS 上,你需要在 Apple Developer 网站上创建 App ID,并在 Xcode 中配置推送通知的证书和密钥。在 Android 上,你需要在 Google Play Console 上创建应用包名和推送通知的 API 密钥。
  2. 建立推送通知服务:你需要建立一个用于发送推送通知的后端服务。这个服务可以是一个云服务、服务器或第三方推送服务。这个服务需要与应用程序注册的推送通知服务进行通信,以便将消息发送到正确的设备上。
  3. 发送推送通知:当你的应用程序需要发送推送通知时,它会将消息发送到你的后端服务。后端服务会使用应用程序注册的推送通知服务将消息发送到目标设备。在 iOS 上,消息通常是以 JSON 格式发送的,而在 Android 上,消息可以是自定义的 JSON 对象或纯文本。
  4. 处理推送通知:当移动设备接收到推送通知时,操作系统会将其传递给应用程序。应用程序可以编写代码来处理这些通知,例如显示一个通知提示用户查看消息、打开应用程序或执行其他操作。

以上是应用程序实现主动发送通知给手机的基本步骤。具体的实现方式可能会因操作系统、开发语言和后端服务的不同而有所差异。

 类似资料:
  • 例如,我有一个元素要向右浮动 如何将浮动/对齐到右侧?还有,为什么占用了的全部空间,而不仅仅是Hello的空间?

  • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

  • 我已经从这里安装了一个Android Studio。它起作用了,我写了一个hello world项目,然后关闭了它。但IDE不会第二次启动。它会给我一个错误“缓存被锁定”。 我安装了unlocker,它说没有进程阻止这个文件夹。有人知道问题出在哪里吗?提前道谢。

  • 问题内容: 我正在尝试构建一个android应用程序,此应用程序的主要功能之一是使其能够在手机启动时自动启动活动,我在手机上看到一些应用程序已经执行了此操作,因此任何帮助都将非常有用。我可以至少通过sdk对此进行更好的研究,谢谢! 问题答案: 您需要像这样实现BroadCastreceiver: 在清单中添加以下内容: 添加权限:

  • 我想创建一个Android点击功能,使手机振动5秒。

  • 我有一个应用程序有推送通知功能。我注意到有些设备,特别是中国手机,像夏摩、oppo、一加等都有自动启动的选项,这就控制了推送通知。当应用程序不在后台或最近列表中时,我不会收到推送通知。默认情况下,我的应用程序自动启动是关闭的 是否有任何选项可以将“自动启动”设置为默认为“开启”