创建一个读取传感器数据的应用程序,然后锁定屏幕

Create a app that reads a sensor data, then lock the screen

我知道这可以通过一些带有 Tasker 和 Automate 的应用程序来完成,但我想自己学习。

  1. 创建一个始终在后台运行的应用程序;
  2. 如何读取传感器数据(在这种情况下我想使用'Ambient light sensor');
  3. 锁定屏幕。

我有 Android Studio,一切都准备好制作应用程序和编译,但我不知道如何制作这个/从哪里开始。感谢您的帮助。

您提出的问题涵盖了几个非常广泛的主题,很难为他们提供量身定制的答案。有人能做的最好的事情就是提供一些我会尝试的指示 -

  1. 要在 Android 上在后台创建应用程序,您基本上需要创建一个 Android 服务并将其 运行 保留在后台。确保它是一个粘性服务,这意味着如果该服务由于某种原因被终止,它将自动重新启动。如果你想 运行 这个应用程序总是在后台运行(虽然这不是一个好主意),你可以监听一个引导完成的广播并从广播接收器启动你的后台。以下 link 是相关主题 - https://developer.android.com/reference/android/content/BroadcastReceiver.html https://developer.android.com/reference/android/content/Intent.html#ACTION_BOOT_COMPLETED https://developer.android.com/guide/components/services.html https://developer.android.com/reference/android/app/Service.html#START_STICKY

  2. 读取环境光传感器数据非常简单。按照下面提供的 link 进行操作。尽管 link 中显示的所有示例都需要您的应用程序位于前台,但这不是强制性的。您基本上可以从后台服务注册传感器数据更改侦听器。侦听传感器数据,需要您创建传感器管理器框架服务的实例 class 并注册特定传感器(在您的情况下为 Light)数据更改侦听器 源页面 - https://developer.android.com/guide/topics/sensors/sensors_overview.html

  3. 我没有以编程方式使用 keyguard locking/unlocking 的个人经验,但很少有 link 提供一些示例代码值得一看 - How to Lock/Unlock screen programmatically? Android screen lock/ unlock programmatically