■SIMのシリアル番号
以下のようにすることでSIMのシリアル番号にアクセスできる。
package info.justoneplanet.android.sample.id; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; public class AndroidIdActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Log.e("SIM", telephonyManager.getSimSerialNumber()); } }
パーミッション
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
■UUID
UUIDは不変で128bitの固有のIDである。
一元管理していたり,重複をチェックする仕組みがないのに,世界でただ一つのIDを自由にいくらでも作って自分の機器を管理・識別するために使える
package info.justoneplanet.android.sample.id; import java.util.UUID; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; /** * AppUUID * @author justoneplanet */ public class AppUUID { private static String uuid = null; private static final String UUID_KEY = "UUID_KEY"; public static String get(Context context) { if (uuid != null) {// 既にapp内からinvokeされている場合 return uuid; } SharedPreferences sharedPreferences = context.getSharedPreferences(UUID_KEY, Context.MODE_PRIVATE); uuid = sharedPreferences.getString(UUID_KEY, null); if (uuid == null) {// 何も設定されていない場合 uuid = UUID.randomUUID().toString();// randomな文字列を生成 Editor editor = sharedPreferences.edit(); editor.putString(UUID_KEY, uuid); editor.commit();// 保存 } return uuid; } }
パーミッションは必要ない。
Log.e("AppUUID", AppUUID.get(getApplicationContext()));
アプリ間の固有の値であり再インストールすれば値は変わるので潔い。
■ANDROID_ID
package info.justoneplanet.android.sample.id; import android.app.Activity; import android.os.Bundle; import android.provider.Settings.Secure; import android.util.Log; public class AndroidIdActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); Log.e("ANDROID_ID", androidId); } }
■IMEI
package info.justoneplanet.android.sample.id; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; public class AndroidIdActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Log.e("IMEI", telephonyManager.getDeviceId()); } }
パーミッション
<uses-permission android:name="android.permission.READ_PHONE_STATE" />