是的,我看了所有类似的问题,但是我找不到合适的答案。我需要设备ID来为AdMob设置测试设备。我的第一种方法(由于安全原因而改变了一些数字):
final TelephonyManager tm = (TelephonyManager) c
.getSystemService(Context.TELEPHONY_SERVICE);
Log.w("ID", tm.getDeviceId());
结果:358948074051795
文档说明:返回唯一的设备ID,例如GSM的IMEI和CDMA手机的MEID或ESN。如果设备ID不可用,则返回null。
我的第二种方法:
Log.w("ID_1",
Secure.getString(c.getContentResolver(), Secure.ANDROID_ID));
结果:98ade639139bf376
描述:在设备首次启动时随机生成的64位数字(作为十六进制字符串),并且应在设备的生命周期内保持不变
问题:有什么区别?我应该将哪一个用于AdMob测试目的?
答案 0 :(得分:1)
差异写在两种方法的描述中......
但是,我认为使用IMEI number
更可靠,因为它可以识别设备本身。如果设备必须恢复默认配置怎么办?
如果你选择第二个选项,你必须检查它是否没有生成新号码。
有关IMEI的更多信息,请访问:http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity
答案 1 :(得分:1)
<强> 1.Code 强>
Settings.Secure#ANDROID_ID returns the Android ID as an unique 64-bit hex string
import android.provider.Settings.Secure;
String deviceId = Secure.getString(this.getContentResolver(),Secure.ANDROID_ID);
Toast.makeText(this, deviceId, Toast.LENGTH_SHORT).show();
<强> 2.manifest 强>
在清单文件中添加使用权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />