Androidの端末IDを作る
欲しいもの
ID生成
1回目の呼び出しで生成、以後は保存された値を返す
public String id(){ SharedPreferences pref = activity.getPreferences(activity.MODE_PRIVATE); String id = pref.getString("device_id", ""); if(id.length() < 1){ String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.System.ANDROID_ID); long now = (long)(new Date().getTime()/1000); id = MD5.hexdigit(android_id+"_"+now); pref.edit().putString("device_id", id).commit(); } return id; }
ID再生性
作りなおす
public String id_reset(){ this.getPreferences(activity.MODE_PRIVATE).edit().putString("device_id", "").commit(); return id(); }
MD5の作り方
MD5はjava.security.MessageDigestを使ったら作れた
import java.security.*; public class MD5 { public static String hexdigit(Object o) { try { MessageDigest msgDigest = MessageDigest.getInstance("MD5"); msgDigest.update(o.toString().getBytes()); byte digest[] = msgDigest.digest(); StringBuffer hexStr = new StringBuffer(); for (int i=0; i<digest.length; i++){ hexStr.append(Integer.toHexString(0xFF&digest[i])); } return hexStr.toString(); } catch (Exception ex) { ex.printStackTrace(); } return ""; } }