[英]How to save and retrieve a file on 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();
}
绝对不是问题,因为设置断点可以看到x
, y
和z
,因此收集传感器数据绝对不是问题。
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
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()
返回的目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.