2024年4月5日发(作者:)
android平台获取手机IMSI,IMEI,序列号,和手机号的方法
android平台获取手机IMSI,IMEI ,序列号,和手机号的方法
1)获取运营商sim卡imsi号,
String IMSI =(
TY_IMSI);
2)获取IME标识两种方法(手机唯一的标识)
String imei =((TelephonyManager)
temService(TELEPHONY_SERVICE)).getDeviceI
d();
String IMEI
=(
TY_I MEI)
不过纯APP开发SystemProperties,TelephonyProperties汇报
错误,因为
Properties在SDK的库中是没有的,需要把
Android SDK 目录下data 下的文件加到当前工程的附
加库路径中,就可以Import。
如果Android Pad没有IMEI,用此方法获取设备ANDROID_ID:
String
2. 获取手机号
TelephonyManager
tm=(TelephonyManager)temService(Context.
TELEPHONY_SERVICE); String number = e1Number();
如下使用例子:
public static String getIMEI() {
return
((TelephonyManager)().getSystemService(
ONY_SERVICE)).getDeviceId();
android_id =
ing(tentResolver(),D_ID);
}
public static String getAndroidId() {
return ing(
().getContentResolver(),
D_ID);
}
public static String getSimSerialNumber() {
return
((TelephonyManager)().getSystemService( Co
ONY_SERVICE)).getSimSerialNumber();
}
public static String getSerialNumber1() {
;
}
/**
* getSerialNumber
* @return result is same to getSerialNumber1()
*/
public static String getSerialNumber(){
String serial = null;
try {
Class c =e("Properties");
Method get =hod("get", );
serial = (String)(c, "no");
} catch (Exception e) {
tackTrace();
}
return serial;
}
public static void displayDevice(){
String dest_imei = getIMEI();
String androidId =getAndroidId();
Log.i(TAG, "isTestDevice:"
+"nIMEI:"+dest_imei
+" nANDROID ID:" +androidId
+" nSerialNumber:"+ getSerialNumber()
+"nSimSerialNumber:" + getSimSerialNumber()
);
}
运行结果示例:
IMEI:868331011992179
ANDROID ID:5a3b287f2b13bef8
SerialNumber:021YLJ212C001879
SimSerialNumber:898600810110
3. 获取一个能唯一标识每台Android设备的序号与服务器通信
所以如果你想得到设备的唯一序号,
iceId() 就足够了。但很明显暴露了
DeviceID会使一些用户不满,所以最好把这些id加密了。实际上加密
后的序号仍然可以唯一的识别该设备,并且不会明显的暴露用户的特
定设备,例如,使用
de() ,结合UUID:
String getuniqueId(){
TelephonyManager tm = (TelephonyManager)
getBaseContext().getSystemService(ONY_SE
RVICE);
Stringimei=iceId();
StringsimSerialNumber=SerialNumber();
String
=ing(
getContentResolver(),
androidId
ROID_ID);
UUID deviceUuid =newUUID(de(),
((long)de() << 32)
|de());
String uniqueIuniqueId d= ng();
returnuniqueId;
}
最后的deviceID可能是这样的结果: 00000000-54b3-e7c7-
0000-000046bffd97
得到设备独一无二的标识:可以用于客户端与服务端通信的唯一
标识
根据测试:
·所有的设备都可以返回一个iceId()
·所有的GSM设备(测试设备都装载有SIM卡) 可以返回一个
SerialNumber()
·所有的CDMA 设备对于getSimSerialNumber() 却返回一个空
值!
·所有添加有谷歌账户的设备可以返回一个ANDROID_ID
·所有的
了谷歌账户)
·目前尚未测试的:没有SIM卡的GSM设备、没有添加谷歌账户
的GSM设备、处于飞行模式的设备。
CDMA设备对于ANDROID_ID 和
iceId()返回相同的值(只要在设置时添加


发布评论