2013-02-15 5 views
9

現在、私はAndroidデバイスの識別子としてMACアドレスを使用しています。Androidデバイスをプログラムで識別する方法は?

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

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

理由を把握できれば、それが最高です!

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

+0

なぜあなたはこれをしたいですか? – iTech

+0

@iTechこれは、ユーザーのデータをデータベースに格納するために使用されます。 – JackWM

+0

代わりにユーザーアンドロイドアカウントを取得するのはどうですか?つまり電子メール もしあなたの携帯電話を売って新しい携帯電話を買ってしまったら、安定していますが、それでもプログラマチックにはどうすれば – iTech

答えて

3

Android搭載端末のユニークなものを探す際には、そのシリアル番号にアクセスすることをおすすめします。そこにこれを行う方法のいくつかの他の記事がありますが、最も視聴一つはここにある:

How to find serial number of Android device?

10

あなたはimeiに基づいて独自に任意のアンドロイド携帯を識別することができます。

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

はあなたのAndroidManifest.xmlに権限を追加します。

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

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

+4

電話ではないデバイスには固有のIMEI番号はありません。 – CommonsWare

関連する問題