2011-10-02 1 views
1

Je suis assez nouveau à la programmation Android et écrit ma toute première application pour ma thèse de diplôme. Maintenant, je suis presque fini, mais il me reste une chose à laquelle je n'ai pu trouver de réponse nulle part sur le net. Alors peut-être que quelqu'un ici peut aider.Comment puis-je écrire des données dans un fichier et y accéder depuis l'extérieur de l'application (sans carte SD)?

Une partie de ce que mon application doit faire est d'écrire les résultats des opérations précédentes dans un fichier librement accessible pour analyse ultérieure. Donc ce que je suis arrivé à ce jour est que je suis capable d'écrire un fichier sur la carte SD avec le code suivant:

String packageName = this.getClass().getPackage().getName(); 
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/" + packageName + "/files/"; 
if (isExternalStorageAvailable() && isExternalStorageWritable()) 
{ 
    String filename = "_results.dat"; 

    boolean exists = (new File(path)).exists(); 
    if (!exists) 
    { 
     new File(path).mkdirs(); 
    } 
    // Open output stream 
    FileOutputStream fOut = new FileOutputStream(path + filename,true); 

    fOut.write("lalala".getBytes()); 
     etc. 
    } 

public static boolean isExternalStorageAvailable() 
{ 
    // Retrieving the external storage state 
    String state = Environment.getExternalStorageState(); 

    // Check if available 
    if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) 
    { 
     return true; 
    } 

    return false; 
} 


public static boolean isExternalStorageWritable() 
{  
    // Retrieving the external storage state 
    String state = Environment.getExternalStorageState(); 

    // Check if writable 
    if (Environment.MEDIA_MOUNTED.equals(state)) 
    { 
     return true; 
    } 

    return false; 

} 

Ce fichier je peux accéder à plus tard, copie, peu importe. Comme je le veux. Maintenant la vraie question est:

Y at-il un moyen d'y parvenir sans une carte SD dans le téléphone? Ou puis-je seulement écrire dans 'app-memory' (ce qui ne suffirait pas à mes besoins)? Je demande seulement parce que pour l'instant il n'y a pas de cartes SD dans les téléphones où je vais déployer l'application. Et nous devons décider si nous devons "mettre à jour" les appareils :).

+0

Les cartes SD ou autres périphériques de stockage externes sont assez courants sur les téléphones Android. Sans le savoir, je dirais que 90% de tous les téléphones Android ont un stockage externe. –

Répondre

1

Bien, si vous voulez éviter d'avoir mis à jour le téléphone avec une carte SD, consultez le lien this. Il dit que les fichiers écrits dans la mémoire interne ne sont pas accessibles par d'autres applications, mais si vous lisez, vous pouvez définir d'autres drapeaux:

MODE_PRIVATE va créer le fichier (ou remplacer un fichier du même nom) et rendez-le privé à votre application. Les autres modes disponibles sont: MODE_APPEND, MODE_WORLD_READABLE et MODE_WORLD_WRITEABLE.

Questions connexes