Androidでデバイス関連のIDを取得する方法
Android端末の固有IDを取得する処理を簡単にまとめました。
固有IDというとシリアル番号「IMEI」、電話番号、MacAddressが考えられます。画面イメージではMacAddressも取得できていますが、最近のAndroid端末では取得できないように仕様が変わっているそうです。取得できないときは、乱数で生成するなどの対策も考えられますが、アプリを再インストールするケースを考慮すると、あまりやりたくはないですね。
また、AndroidIdという識別子もあり、これはAndroidのOSセットアップ時に割り振られるIDということになっています。こちらを採用したほうが適切かもしれません。
プログラム
@RequiresApi(api = Build.VERSION_CODES.O) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { return; } String deviceImei = tm.getImei(); String line1Number = tm.getLine1Number(); String androidId = Settings.Secure.getString(getContentResolver(), "android_id"); WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifi.getConnectionInfo(); String macAddress = wifiInfo.getMacAddress(); TextView tv = new TextView(this); tv.setText(deviceImei + "\n" + line1Number + "\n" + androidId + "\n" + macAddress); tv.setTextSize(32); setContentView(tv); }