android - 应用程序可以从锁定屏幕读取信息吗?
问题描述
我应该首先说我(还)不是 Android 开发人员。我有一个非常具体的个人任务,我想完成。如果我想做的事情是可能的,那么值得我学习让它发挥作用。如果不可能,那么我会坚持我已经知道的!
我患有 1 型糖尿病,并使用一款医疗应用程序,该应用程序会在 Android 手机的锁定屏幕上显示我的血糖水平。下面有一个截图。我希望能够捕获信息(尤其是红框中的数字)并以其他方式使用它。
我测试了另一个读取 Android 通知的应用程序,但它似乎只能访问从应用程序显示的弹出消息。它在锁定屏幕上看不到持久通知。
那么......应用程序是否可以读取那些锁定屏幕通知?
在此先感谢您的帮助。
解决方案
是的,这是可能的NotificationListener
:
https ://developer.android.com/about/versions/android-4.3.html#NotificationListener
标志 FLAG_ONGOING_EVENT 或 FLAG_NO_CLEAR 会让您知道某个通知是否持续存在。
这是一个我发现很有用的示例项目NotificationListener
。在 中NotificationListenerExampleService.java
,您可以简单地更改onNotificationPosted
方法来确定通知是否是持久的:
@Override
public void onNotificationPosted(StatusBarNotification sbn){
if (sbn.getPackageName().equals("package name of your desired app")) {
if (!sbn.isClearable()) {
Notification notif = sbn.getNotification();
// get your desired data in the notif object
}
}
}
请注意,您只需进入其 Google Play 商店页面即可查看应用程序的包名称,并且在 url 中您会发现如下内容:
https://play.google.com/store/apps/details?id=chat.rocket.ne2.reactnative&hl=en_CA
其中 id 字段(chat.rocket.ne2.reactnative)是包名。
推荐阅读
- z3 - 有没有办法操纵 z3 的上限?
- python - 在 python;mac 上安装 Sublime Text 3 SublimeREPL
- html - 从 Component.ts Angular 6 获取数据
- ruby - 如何连接哈希值和字符串
- laravel - 数据正在插入数据库但显示错误
- c# - 仅在 100% 匹配时替换字符串
- javascript - 如何为多个查询重置 axios.post?
- python - 如何使用 BeautifulSoup 提取特定的 dl、dt 列表元素
- python - 无法从 python 多处理脚本中看到内部调试打印语句
- php - PHP 持久替换空间在我的帖子值末尾显示