簡體   English   中英

如何在Android硬盤而不是SD卡上創建持久文本文件

[英]how to create a persistent text file on Android hard drive and not on SD card

在閱讀了7年的SO問題之后,關於如何從Android設備獲取唯一的設備ID(以及如何真正重新考慮不要這樣做),我認為在設備上創建文件(不在SD卡上,而不是在文件所在的位置)最好在卸載過程中擦除或用戶擦除數據)。

但是如何保存此文件,這可能嗎?

我有此代碼,但它只會將其保存到應用程序內部存儲目錄中

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

如果您具有root用戶訪問權限,則/data/local/tmp可能會對您有所幫助。 通常,這不是移動應用程序存儲唯一ID的理想解決方案。 恕我直言,這太糟糕了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM