aLx*_*450 6 android android-jetpack android-jetpack-compose
我仍在习惯 Jetpack Compose,并且正在尝试获取手机传感器,特别是本例中的加速计,但它可以是任何东西......
在标准活动流程中,我会获取 SensorManager 的实例并从那里开始,但考虑到 Jetpack Compose 所关注的路由,我不知道如何执行此类任务。我们有一个 MainActivity.kt,在其中处理导航。
我真的必须将 SensorManager 实例一直传递到我的可组合项吗?简单地检测设备震动似乎有些过分...如果设备震动,请在可组合项中执行此操作...
从更大的角度来看,这个问题也适用于您在标准生命周期方法中所做的任何事情,我猜......在 Header(...){} 组件中,我无权访问 onCreate 方法。我是否可以理解,如果可组合项需要依赖于生命周期,我必须将所有内容都备份到树上,就像在没有 Redux 的 React 中所做的那样?
Compose 文档特别提到可以为“传感器之类的东西”管理状态,但是如何检索访问这些传感器所需的元素?
我一如既往地感谢您的帮助。
您可以使用:
@Composable
fun myComposable() {
val sensorManager = LocalContext.current.getSystemService(SENSOR_SERVICE) as SensorManager
//...
}
Run Code Online (Sandbox Code Playgroud)