首页 > 解决方案 > 应用程序可以从锁定屏幕读取信息吗?

问题描述

我应该首先说我(还)不是 Android 开发人员。我有一个非常具体的个人任务,我想完成。如果我想做的事情是可能的,那么值得我学习让它发挥作用。如果不可能,那么我会坚持我已经知道的!

我患有 1 型糖尿病,并使用一款医疗应用程序,该应用程序会在 Android 手机的锁定屏幕上显示我的血糖水平。下面有一个截图。我希望能够捕获信息(尤其是红框中的数字)并以其他方式使用它。

我测试了另一个读取 Android 通知的应用程序,但它似乎只能访问从应用程序显示的弹出消息。它在锁定屏幕上看不到持久通知。

那么......应用程序是否可以读取那些锁定屏幕通知?

在此先感谢您的帮助。

安卓锁屏通知

标签: androidnotifications

解决方案


是的,这是可能的NotificationListenerhttps ://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)是包名。


推荐阅读