[问题] 资料存取 储存txt档于内部内存

楼主: pisces1026 (pisces1026)   2015-07-08 10:35:20
大家好 目前刚开始学习android
由于之前也没接触过java
可能有很多不懂的地方请大家多多包涵
目前我要写一个收传感器的值储存在一个txt档
传感器部分已经写好 在档案处理部分一直无法完成
在MainActivity中的onCreate我想写建档跟把值存进去
于是写了一个按钮,按下后开始将accelerometer的xyz值存入txt
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)this.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
FileOutputStream fos = null;
try{
fos = openFileOutput("test.txt" , Context.MODE_APPEND );
fos.write(value.getBytes());
}catch(IOException e) {
Log.e("InternalStorageEx", e.toString());
}
}
});
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
acc_x_View = (TextView) findViewById(R.id.acc_x);
acc_y_View = (TextView) findViewById(R.id.acc_y);
acc_z_View = (TextView) findViewById(R.id.acc_z);
}//end onCreate
然后在收加速度计值的部分
private SensorEventListener acc_listener = new SensorEventListener()
{
public void onAccuracyChanged(Sensor sensor, int accuracy) {
getType());
if(sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
{
}
}
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {//sensors.get(0)
acc_x_View.setText("Mag X : " + (float) event.values[0]);
acc_y_View.setText("Mag Y : " + (float) event.values[1]);
acc_z_View.setText("Mag Z : " + (float) event.values[2]);
}
}
};
虽然还没写好 但有几个问题想问大家
1.这样写应该可以建出txt档在手机内部储存空间吧(因为没SD卡所以存在内部)
但是我到手机内android/data/资料夹内没有看到我package资料夹
所以我也找不到是否有成功建立txt档
2.因为onSensorChanged会在sensor值改变时启动
我不晓得要如何写write
应该写在onSensorChanged内还是onCreate内?
(我的目的是 按下按钮开始储存sensor的值,
例如可能是10秒钟内的sensor值)
因为还刚在学习有很多不懂
还请大家多多包涵
谢谢!!
作者: mshockwave (夏克维夫)   2015-07-08 11:54:00
1. 你有root吗?没有的话看不到txt2. onSensorChange 资料流量很恐怖,这样每次有资料就写档IO会爆掉
作者: cuda (Cuda)   2015-07-13 11:38:00
getExternalFilesDir 用法 http://goo.gl/ogCOj0 可以放在这这样就可以看得见你的档案了2. onCreate在Activity lifecycle只会起来一次 不符合你需求在onSensorChanged先弄个变量cached住资料, 按下按钮再写档另外写档因为是IO 建议写在non UI thread

Links booklink

Contact Us: admin [ a t ] ucptt.com