2017-03-28 3 views
0

Après avoir lu 7 ans de SO questions sur la façon d'obtenir un identifiant de périphérique unique de et appareil Android (et comment on devrait vraiment repenser de ne pas le faire) , Je pense que la création d'un fichier sur l'appareil (pas sur la carte SD et pas où il est effacé lors de la désinstallation ou de l'effacement des données utilisateur) est une bonne approche.comment créer un fichier texte persistant sur le disque dur Android et non sur la carte SD

Mais comment enregistrer ce fichier et est-ce possible?

Je possède ce code, mais il va enregistrer à l'application de stockage interne dir seulement

public synchronized static String applicationId() { 
    if (sID == null) { 
     File file = new File(Application.getInstance().getFilesDir(), Application.getInstance().getString(R.string.application_id_key)); 
     try { 
      if (!file.exists()) 
       writeApplicationIdFile(file); 
      sID = readApplicationIdFile(file); 
     } catch (Exception e) { 
      throw new RuntimeException("Writing ApplicationIdFile failed",e); 
     } 
    } 
    return sID; 
} 
private static String readApplicationIdFile(File file) throws IOException { 
    RandomAccessFile in = new RandomAccessFile(file, "r"); 
    byte[] bytes = new byte[(int) in.length()]; 
    in.readFully(bytes); 
    in.close(); 
    return new String(bytes); 
} 

private static void writeApplicationIdFile(File file) throws IOException { 
    FileOutputStream out = new FileOutputStream(file); 
    out.write(UUID.randomUUID().toString().getBytes()); 
    out.close(); 
    LogManager.i("writeApplicationIdFile", "Writing ApplicationIdFile"); 
} 

Répondre

0

pourrait aider /data/local/tmp Puissance à vous si vous avez un accès root. Dans la pratique courante, ce n'est pas une solution goot pour les applications mobiles pour stocker des ID uniques. Imho, c'est affreux.