作者pisces1026 (pisces1026)
看板AndroidDev
标题[问题] 资料存取 储存txt档於内部记忆体
时间Wed Jul 8 10:35:20 2015
大家好 目前刚开始学习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值)
因为还刚在学习有很多不懂
还请大家多多包涵
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.19.42
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1436322922.A.C5D.html
1F:→ mshockwave: 1. 你有root吗?没有的话看不到txt 07/08 11:54
2F:→ mshockwave: 2. onSensorChange 资料流量很恐怖,这样每次有资料就 07/08 11:54
3F:→ mshockwave: 写档IO会爆掉 07/08 11:54
5F:→ cuda: 这样就可以看得见你的档案了 07/13 11:39
6F:→ cuda: 2. onCreate在Activity lifecycle只会起来一次 不符合你需求 07/13 11:40
7F:→ cuda: 在onSensorChanged先弄个变数cached住资料, 按下按钮再写档 07/13 11:41
8F:→ cuda: 另外写档因为是IO 建议写在non UI thread 07/13 11:42