java - 前台服务从 MainActivity 启动操作

标签 java android android-studio foreground-service

我正在开发 Android 跌倒检测应用程序。当用户跌倒时,带有计时器的警报会打开,如果用户在 15 秒内没有点击取消,应用程序会向联系人发送短信。应用程序打开时一切正常,但我不知道我的前台服务应该如何工作。是否可以使前台服务像这样工作 - 在检测到前台服务跌倒后打开应用程序并从主 Activity 运行计时器?
前台服务打开MainActivity的代码:

Intent myIntent= new Intent(this, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);

最佳答案

您的用例有两个障碍:

首先,从Android 10开始,有new restrictions当您的应用程序在后台启动 Activity 时(正如Android开发人员页面上所写,即使有前台服务,如果前台没有 Activity ,您的应用程序也会被视为在后台运行)。因此,您将无法向用户“弹出” View ,除非您的目标版本< 29(但不非常推荐)。

其次,自 2019 年初以来,Google Play 开发者政策 has been updated并且您不能再使用 SEND_SMS 权限,除非您可以在发布控制台中证明您的应用程序是 SMS 处理程序,并且您需要用户将其注册为默认处理程序。因此您将无法直接发送自动短信。

您可以尝试更改通知消息以提醒用户,并尝试让他单击通知以打开 Activity 。

关于java - 前台服务从 MainActivity 启动操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59868594/

相关文章:

java - Apache Tika 停止日志记录

java - 具有高流量使用率的 Struts2 应用程序(网站)的性能增强

android-studio - uiautomatorviewer 是否取代了 Android 设备监视器中的 HierarchyViewer?

安卓工作室 : Exit code 2 with emulator?

java - Serenity...如何获取 Webdriver?

java - android 中的秒表问题

android - 找不到 butterknife 的符号类绑定(bind)

Android:ListView 监听器?

Android 和 SQLite,设备读取数据库时出错

android-studio - AndroidStudio 3.1.1 不会将 kotlin 类放在类路径中,因此您无法从 IDE 运行 kotlin 类