如何在Google Glass上保存和检索文件?

时间:2015-03-10 23:04:07

标签: java android google-glass

我需要能够将加速度计数据存储在Google Glass上的文本文件中,将玻璃杯插入计算机,然后才能检索该书面文件。

我没有收到任何错误/异常 - 文件永远不会出现。

这是我到目前为止所做的事情(不起作用):

public void onCreate(Bundle savedInstanceState) {
    ...
    try{
        accFile = openFileOutput("acc_data.csv",  MODE_APPEND | MODE_WORLD_READABLE);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
}

收集传感器数据肯定不是问题,因为如果设置断点,我可以看到xyz

public void onSensorChanged(SensorEvent event) {
    Sensor sensor = event.sensor;

    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];
    String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
    String outString = "\""+currentDateTimeString+"\","+x+","+y+","+z+"\n";

    if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        try {
            OutputStreamWriter osw = new OutputStreamWriter(accFile);
            osw.write(outString);
            osw.flush();
            osw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public void onDestroy() {
    ...
    if(accFile != null)
    {
        try {
            accFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

以防万一,android清单有android.permission.WRITE_EXTERNAL_STORAGE

1 个答案:

答案 0 :(得分:1)

openFileOutput将创建/写入应用程序内部的文件(参数MODE_WORLD_READABLE已被弃用)。理想情况下,这意味着您无法从计算机访问此文件。

改为使用外部存储公共目录:

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
file = new File(path, filename);

要执行写入,请使用FileOutputStream

os = new FileOutputStream(file, true);
os.write(string.getBytes());

要在应用内执行阅读,请使用FileInputStream

FileInputStream fis = new FileInputStream(file);
int c;
String temp = "";
while ( (c = fis.read()) != -1) {
     temp = temp + " | " + Character.toString((char) c);
}
Log.v(TAG, temp);

最后,要通过adb shell访问您的文件,只需访问path.toString()返回的目录。