我遇到了一个问题,我的应用程序在我用于调试目的的 Galaxy Tab 7.7 GT-P6800上运行良好,在我的Galaxy Pocket上运行并创建一个文件夹来放置文件,甚至接受输入和所有这些事情但它没有创建文件。我正在 eclipse 中开发,该应用程序的构建 SDK 是 Android 2.3.3 (API 10)。
该应用程序的代码如下所示,找不到问题所在...
package com.android.app1;
public class MainActivity extends Activity {
//Timestamp for file name e.g. Data_7-19-2012
SimpleDateFormat s1 = new SimpleDateFormat("MM-dd-yyyy_hh:mm:ss");
final String format1 = s1.format(new Date());
final public String FileName = "Data_"+format1+".csv";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText addbarcode = (EditText) findViewById(R.id.editText1);
addbarcode.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_ENTER:
//to get Timestamp
SimpleDateFormat s = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
String format = s.format(new Date());
//get barcode in a variable
Editable barcode = addbarcode.getText();
final String DATASTRING = new String(""+barcode+","+format+"");
try
{
File root = new File(Environment.getExternalStorageDirectory(), "BarcodeData");
if (!root.exists()) {
root.mkdirs();
}
//Showing file directory
TextView etDir= (TextView)findViewById(R.id.textView1);
etDir.setText(root.toString());
File gpxfile = new File(root, FileName);
BufferedWriter bW;
bW = new BufferedWriter(new FileWriter(gpxfile, true));
bW.write(DATASTRING);
bW.newLine();
bW.flush();
bW.close();
}
catch(IOException e)
{
e.printStackTrace();
}
String readString = new String(DATASTRING);
TextView etData= (TextView)findViewById(R.id.textView2);
etData.setText(readString);
//Clear the editview for new entries
addbarcode.setText("");
return true;
default:
break;
}
}
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.send:
final File dir = getFilesDir();
final File shareFile = new File(dir, FileName);
Uri u1 = null;
u1 = Uri.fromFile(shareFile);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Person Details");
sendIntent.putExtra(Intent.EXTRA_STREAM, u1);
sendIntent.setType("text/csv");
startActivity(sendIntent);
break;
}
return true;
}
}
我什至添加了所需的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
甚至从项目属性中设置 Java Build Path 属性。