1 つの問題があります。デバッグ目的で使用しているGalaxy Tab 7.7 GT-P6800でアプリが正常に動作し、 Galaxy Pocketで実行してファイルを配置するフォルダーを作成し、入力などすべてを取得します。しかし、それはファイルを作成していません。私は日食で開発しており、アプリのビルド 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 ビルド パス プロパティを設定することもできます。