首页 > 解决方案 > 如何使用 expo 为传感器应用程序创建 csv 文件

问题描述

新的反应原生我正在世博会中创建一个项目一个传感器应用程序收集用户位置陀螺仪的一些数据我想在每 10 分钟后将这些数据保存在 CSV 文件中它在项目中创建一个新的 CSV 文件并且 CSV 文件包含该数据之后我必须发送这些数据有什么方法可以在博览会中编码这是我的代码

import { StatusBar } from 'expo-status-bar';
import React, { useEffect, useState } from 'react';
import { Button, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { Accelerometer, Gyroscope , Barometer , DeviceMotion , Magnetometer} from 'expo-sensors';
import * as locations from 'expo-location';
export default function App() {
  const [x , setX] = useState("empty");
  const [y , setY] = useState("empty");
  const [z , setZ] = useState("empty");
  const [loc , setLocation] = useState({coords : {
    speed : 0,
    longitude : 0,
    latitude : 0
  }})  
  const [acceleration , setAcceleration] = useState("empty")

    const subscribe = Gyroscope.addListener( async({x , y , z , }) => {
        setX(x)
        setY(y)
        setZ(z)
    })
 
  // const motion = DeviceMotion.addListener(({acceleration})=> {
  //     setAcceleration(acceleration)
  // })
  const handleLocation = async() => {
    let { status } = await locations.requestForegroundPermissionsAsync();
      const permission = await locations.getBackgroundPermissionsAsync({})
       locations.getCurrentPositionAsync().then((response)=>{
       setLocation(response)
      }).catch((er)=> {
        console.log("error : " + er)
      })
  }

  useEffect(()=> {
      // handleLocation()
  }, [loc])
  // setInterval(async()=>{
  //   await handleLocation()
  // },3000);

  return (
    <View style = {{top : "10%"}}>
      <Text>gyro x is : {x}</Text>
      <Text>gyro y is : {y}</Text>
      <Text>gyro z is : {z}</Text>
      <Text>location is : {acceleration.x}</Text>
      <Text>Speed is : {loc.coords.speed}</Text>
      <Text>Longitude is : {loc.coords.longitude}</Text>
      <Text>Latitude is : {loc.coords.latitude}</Text>

      <StatusBar style="auto" />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

标签: react-nativeexpoexport-to-csvandroid-sensors

解决方案


推荐阅读