AndroidでデバイスIDをプログラムで取得する方法


  1. TelephonyManagerを使用する方法:

    import android.content.Context;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    public class DeviceUtils {
    private static final String TAG = "DeviceUtils";
    public static String getDeviceId(Context context) {
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String deviceId = telephonyManager.getDeviceId();
        Log.d(TAG, "Device ID: " + deviceId);
        return deviceId;
    }
    }
  2. Settings.Secureを使用する方法:

    import android.content.Context;
    import android.provider.Settings;
    import android.util.Log;
    public class DeviceUtils {
    private static final String TAG = "DeviceUtils";
    public static String getDeviceId(Context context) {
        String deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
        Log.d(TAG, "Device ID: " + deviceId);
        return deviceId;
    }
    }
  3. AdvertisingIdClientを使用する方法 (広告IDを取得する場合):

    import android.content.Context;
    import android.util.Log;
    import com.google.android.gms.ads.identifier.AdvertisingIdClient;
    import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
    import com.google.android.gms.common.GooglePlayServicesRepairableException;
    import com.google.android.gms.common.api.GoogleApiClient;
    import com.google.android.gms.tasks.Task;
    import com.google.android.gms.tasks.Tasks;
    import java.io.IOException;
    public class DeviceUtils {
    private static final String TAG = "DeviceUtils";
    public static String getDeviceId(Context context) {
        String deviceId = null;
        try {
            AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
            deviceId = adInfo.getId();
            Log.d(TAG, "Device ID: " + deviceId);
        } catch (IOException | GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
            e.printStackTrace();
        }
        return deviceId;
    }
    }

これらの方法は、デバイスの一意の識別子を取得するための一般的な手法です。ただし、デバイスIDの取得方法はデバイスのバージョンや設定によって異なる場合があります。また、一部の方法はプライバシー上の制限により使用できない場合があります。したがって、適切な方法を選択する前に、Androidのバージョンとプライバシー要件を確認してください。

また、デバイスIDの取得は一部のデバイスでは制限されている場合があります。そのため、デバイスIDに依存せずにアプリを設計することも検討してください。