web-dev-qa-db-ja.com

プログラムでAndroidデバイスを識別する方法は?

現在、Androidデバイスの識別子としてMACアドレスを使用しています。

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String mac = wInfo.getMacAddress();

ただし、一部のユーザーのデバイスではmacが空であることがわかりました。なぜそれが空であるのか私は少し混乱しています。

理由がわかれば最高です!

それ以外の場合、Androidデバイスを識別するための代替手段を提供できますか?

17
JackWM

Androidデバイスについてユニークなものを見つけることで最善の策は、そのシリアル番号にアクセスすることです。これを行う方法に関する他のいくつかの投稿がありますが、最も閲覧されたものはここにあります:

Androidデバイス?)のシリアル番号を見つける方法

7
Phil

imeiに基づいて、Androidモバイルを一意に識別できます。

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();

AndroidManifest.xmlに権限を追加します。

<uses-permission Android:name="Android.permission.READ_PHONE_STATE"/>

エミュレータでは、おそらく0000 ...のような値を取得します。デバイスIDを取得するには、デバイスで確認してください。

12
Ajay S