如何解决当应用程序在后台时如何将多个传感器值传递给android中的通知栏
我是 Android 传感器和通知的新手。我正在处理传感器数据(光、接近度、加速度计和陀螺仪传感器)。我的目标是制作一个应用程序,在四个不同的卡片视图中显示四个传感器值。我已经正确地做到了。但是,在从任务管理器关闭应用程序后,如何在后台运行该应用程序以及四个实时传感器值如何显示在通知栏中,我陷入了困境。我没有通过互联网获得一个有意义的正确解决方案。我需要帮助来解决问题。
代码:
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
LightSensorXvalue.setText(String.valueOf(event.values[0]));
LightSensorYvalue.setText(String.valueOf(event.values[1]));
LightSensorZvalue.setText(String.valueOf(event.values[2]));
}
if (event.sensor.getType() == Sensor.TYPE_gyroscope) {
PorximitySensorXvalue.setText(String.valueOf(event.values[0]));
PorximitySensorYvalue.setText(String.valueOf(event.values[1]));
PorximitySensorZvalue.setText(String.valueOf(event.values[2]));
}
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
AccelerometerXvalue.setText(String.valueOf(event.values[0]));
AccelerometerYvalue.setText(String.valueOf(event.values[1]));
AccelerometerZvalue.setText(String.valueOf(event.values[2]));
}
if (event.sensor.getType() == Sensor.TYPE_gyroscope) {
gyroscopeXvalue.setText(String.valueOf(event.values[0]));
gyroscopeYvalue.setText(String.valueOf(event.values[1]));
gyroscopeZvalue.setText(String.valueOf(event.values[2]));
}
}
解决方法
- 您将需要自定义通知(参考:https://developer.android.com/training/notify-user/custom-notification)来创建自定义内容,因为默认通知仅支持一个图标和一个标题 + 其他 2 行简单文本
- 此外,您将需要 RemoteView 来控制此自定义布局(参考:How to update Notification with RemoteViews?)并一一更新值
- 最后,当有效/单个/静态通知运行良好时,您可以创建一个服务(参考:https://developer.android.com/guide/components/services),即使应用程序在后台运行,该服务也继续运行,在哪里更新自定义通过 RemoteView 查看
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。