我正在嘗試實現下面找到的代碼,以便在安裝應用程序時爲用戶權限生成隨機ID號。我只是有幾個問題。在應用程序安裝時設置唯一ID - Android
- 如果我爲此創建了一個新文件(Install.java),如何訪問另一個類中的ID?
如何確保在首次安裝應用程序時執行程序的這一部分?現在,程序從我的Main.java類開始(我是Java新手)。它會在應用程序安裝時運行嗎?
public class Install { private static String sID = null; private static final String INSTALLATION = "INSTALLATION"; public synchronized static String id(Context context) { if (sID == null) { File installation = new File(context.getFilesDir(), INSTALLATION); try { if (!installation.exists()) writeInstallationFile(installation); sID = readInstallationFile(installation); } catch (Exception e) { throw new RuntimeException(e); } } return sID; } private static String readInstallationFile(File installation) throws IOException { RandomAccessFile f = new RandomAccessFile(installation, "r"); byte[] bytes = new byte[(int) f.length()]; f.readFully(bytes); f.close(); return new String(bytes); } private static void writeInstallationFile(File installation) throws IOException { FileOutputStream out = new FileOutputStream(installation); String id = UUID.randomUUID().toString(); out.write(id.getBytes()); out.close(); } }
我強烈建議您不要寫入文件(您不知道哪些設備可用於所有品牌和型號的手機),而是使用Preferences或SharedPreferences對象。除此之外,您還可以利用BackupManager,因此如果用戶在另一部手機上安裝應用程序,BackupManager會將任何存儲的首選項複製到新手機。 – 2012-02-07 14:43:00
@RichardGreen感謝您的回覆。我正在嘗試使用SharedPreference來實現此功能,但我遇到了很多麻煩。你能否看看我的另一篇文章,告訴我在哪裏和我如何在給出的代碼中實現它?這裏有一個鏈接:http://stackoverflow.com/questions/9177092/saving-user-id-in-shared-preferences-android/9177246#9177246 – mkyong 2012-02-07 14:46:52