//获取IMEI,不过此方法依赖TelephonyManager,是不是无电话功能的android系统,也支持,不知道
private void getImieStatus() {
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
Log.e("DEVICE_ID ", deviceId + " ");
}
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
Log.e("DEVICE_ID ", deviceId + " ");
}
//获取手机SIM卡唯一标识
String imsi = (tm.getSubscriberId() == null ? "" : tm.getSubscriberId());
//注意此方法,需要导包:import android.provider.Settings.System;java中也有一个System类。
经测试,此中方法是可以信赖的
private void getAndroidId(){
String androidId = System.getString(getContentResolver(), System.ANDROID_ID);
Log.e("ANDROID_ID", androidId + " ");
}
}
private void getAndroidId(){
String androidId = System.getString(getContentResolver(), System.ANDROID_ID);
Log.e("ANDROID_ID", androidId + " ");
}
}
tm.getDeviceId()表示唯一的设备ID,例如对于GSM手机返回IMEI,对于CDMA手机返回MEID,如果设备不可用则返回NULL,比如在模拟器上。
System.getString(getContentResolver(), System.ANDROID_ID)表示一个64位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改变)
System.getString(getContentResolver(), System.ANDROID_ID)表示一个64位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改变)
参考文章:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-4603.html
http://www.eoeandroid.com/thread-5240-1-1.html
今天在eoe上看到另一方法(获取CPU序列号),但在G2,G7上测试,都无法正常获取:
android也是可以获得我们手机的
cpu序列号的,这证明了
android是一个非常强大的系统,虽然现在还是有一些小的
bug,但是到目前为止,
android是一个非常好的手机系统,之所以非常好,
android才可以和苹果抗衡,形成手机的流行操作系统。不多说了,下面我们就来看看代码吧:
Java代码:
Java代码:
- /**
- * 获取CPU序列号
- *
- * @return CPU序列号(16位)
- * 读取失败为"0000000000000000"
- */
- public static String getCPUSerial() {
- String str = "", strCPU = "", cpuAddress = "0000000000000000";
- try {
- //读取CPU信息
- Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo");
- InputStreamReader ir = new InputStreamReader(pp.getInputStream());
- LineNumberReader input = new LineNumberReader(ir);
- //查找CPU序列号
- for (int i = 1; i < 100; i++) {
- str = input.readLine();
- if (str != null) {
- //查找到序列号所在行
- if (str.indexOf("Serial") > -1) {
- //提取序列号
- strCPU = str.substring(str.indexOf(":") + 1,
- str.length());
- //去空格
- cpuAddress = strCPU.trim();
- break;
- }
- }else{
- //文件结尾
- break;
- }
- }
- } catch (IOException ex) {
- //赋予默认值
- ex.printStackTrace();
- }
- return cpuAddress;
- }
参考文章:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=69080&extra=page%3D2