2017-03-28 4 views
0

고유 한 기기 ID 및 Android 기기를 얻는 방법에 대한 7 년간의 의문점을 읽은 후 (실제로 어떻게해야하는지 다시 생각해보아야 함) , 나는 장치에 파일을 만드는 것 (SD 카드가 아니라 제거 또는 사용자가 데이터를 지울 때 닦아내는 것이 아니라)이 좋은 선택이라고 생각합니다.SD 카드가 아닌 Android 하드 드라이브에 영구 텍스트 파일을 만드는 방법

하지만이 파일을 저장하는 방법은 무엇입니까?

는이 코드를 가지고 있지만 그것은 당신이 루트 액세스를 가지고있는 경우에만

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"); 
} 

답변

0

세력 /data/local/tmp 당신에게 도움이 될 응용 프로그램 내부 저장 디렉토리에 저장됩니다. 일반적으로 이것은 모바일 앱이 고유 ID를 저장하는 goot 솔루션이 아닙니다. 이모, 이건 끔찍해.