从 Jetpack Compose 中的可组合项中访问传感器
Access sensors from within Composables in Jetpack Compose
我还在习惯 Jetpack Compose,我正在尝试获取 phone 传感器,特别是在这种情况下的加速度计,但它可以是任何东西...
在标准 Activity 流程中,我会得到一个 SensorManager 实例并从那里开始,但考虑到 Jetpack Compose 所追求的路由的重点,我不知道如何执行这样的任务。我们有一个 MainActivity.kt 从中处理导航。
我真的必须将 SensorManager 实例一直传递到我的 Composable 吗?简单地检测设备抖动似乎过分了...如果设备抖动,请在可组合项中执行此操作...
从更大的角度来看,我猜这个问题也适用于您在标准生命周期方法中所做的任何事情...在 Header(...){} 组件中,我无权访问 onCreate方法。我是否理解如果可组合项需要依赖于生命周期,我必须将所有内容冒泡备份到树中,类似于你在没有 Redux 的 React 中所做的?
Compose 文档特别提到可以为“类似传感器的东西”管理状态,但是如何检索访问这些传感器所需的元素?
一如既往地感谢您的帮助。
您可以使用:
@Composable
fun myComposable() {
val sensorManager = LocalContext.current.getSystemService(SENSOR_SERVICE) as SensorManager
//...
}
我还在习惯 Jetpack Compose,我正在尝试获取 phone 传感器,特别是在这种情况下的加速度计,但它可以是任何东西...
在标准 Activity 流程中,我会得到一个 SensorManager 实例并从那里开始,但考虑到 Jetpack Compose 所追求的路由的重点,我不知道如何执行这样的任务。我们有一个 MainActivity.kt 从中处理导航。
我真的必须将 SensorManager 实例一直传递到我的 Composable 吗?简单地检测设备抖动似乎过分了...如果设备抖动,请在可组合项中执行此操作...
从更大的角度来看,我猜这个问题也适用于您在标准生命周期方法中所做的任何事情...在 Header(...){} 组件中,我无权访问 onCreate方法。我是否理解如果可组合项需要依赖于生命周期,我必须将所有内容冒泡备份到树中,类似于你在没有 Redux 的 React 中所做的?
Compose 文档特别提到可以为“类似传感器的东西”管理状态,但是如何检索访问这些传感器所需的元素?
一如既往地感谢您的帮助。
您可以使用:
@Composable
fun myComposable() {
val sensorManager = LocalContext.current.getSystemService(SENSOR_SERVICE) as SensorManager
//...
}