获取Android系统的唯一识别码

摘自:http://blog.csdn.net/lixinso/article/details/5889392

在计算机上,我们习惯用MAC地址来标志一台计算机。在Android设备上,可以用IMIE或者Android ID来标志一个设备。
看一下Android上怎样获取这样的信息。
一个是TelephonyManager的getDeviceId,另外一个是Settings.System的ANDROID_ID
这里贴一段测试代码:
package com.npc4.android.imie;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.provider.Settings.System;
/**
 * @author lixinso
 * 获取系统的唯一标识
 */
public class IMIE extends Activity {
     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        getImieStatus();
        getAndroidId();
        
    }
private void getImieStatus() {
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
Log.e("DEVICE_ID ", deviceId + " ");
}
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位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改
变)

但是试的情况总是崩溃。后面又找了一篇文章:
http://blog.csdn.net/yuxiaohui78/article/details/8241144

说是参考了这篇文章最后找到解决办法:
http://stackoverflow.com/questions/2785485/is-there-a-unique-android-device

原因是没加权限。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值