J'ai un problème, mon application fonctionne bien sur mon Galaxy Tab 7.7 GT-P6800, que j'utilise à des fins de débogage, et sur mon Galaxy Pocket il fonctionne et crée un dossier à placer le fichier et même en prenant des entrées et tout ça mais ça ne crée pas le fichier. Je développe en éclipse et le build SDK pour l'application est Android 2.3.3 (API 10).Android: App fonctionne bien sur un appareil et ne fonctionne pas sur un autre
Le code de l'application est donnée ci-dessous, ne peut pas trouver ce que le problème est ...
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;
}
}
J'ai même ajouté les autorisations requises
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
et même définir la génération Java propriété Path de propriétés du projet.
J'ai utilisé cette vérification mais toujours pas de chance J'ai ajouté le code suivant dans celui ci-dessus 'Boolean isSDPresent = android.os.Environment.getExternalStorageState(). Est égal à (android.os.Environment.MEDIA_MOUNTED); si (isSDPresent) {// oui carte SD est présente } { autre // Désolé } 'Et son vrai, mais toujours pas les fichiers. –
Est-ce que quelqu'un sait ce qui me manque? Je veux vraiment en finir avec. Merci pour l'aide. –
Pouvez-vous poster votre logcat? – biegleux