mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-06 19:16:21 +02:00
46 lines
1.4 KiB
Java
46 lines
1.4 KiB
Java
package com.henrikrydgard.libnative;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.RandomAccessFile;
|
|
import java.util.UUID;
|
|
|
|
import android.content.Context;
|
|
|
|
|
|
public class Installation {
|
|
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) {
|
|
// We can't even open a file for writing? Then we can't get a unique-ish installation id.
|
|
return "BROKENAPPUSERFILESYSTEM";
|
|
}
|
|
}
|
|
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();
|
|
}
|
|
}
|
|
|