我需要数据连接才能获得TELEPHONY_SERVICE吗?

时间:2014-11-21 17:38:13

标签: android telephonymanager

我使用TelepphonyManager和Context.TELEPHONY_SERVICE获取设备ID

    TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String uid = tManager.getDeviceId();

我是否需要可用的3G / 4G / LTE数据连接才能获得TELEPHONY_SERVICE?或者如果没有信号,这会返回null吗?

编辑:

关闭设备系统设置中的移动数据设置是否完全关闭数据连接,就像根本没有数据连接一样?因为这样很容易测试。

2 个答案:

答案 0 :(得分:0)

我无法在Android文档中找到有关您的问题的内容。见这里:http://developer.android.com/reference/android/content/Context.html#TELEPHONY_SERVICE

我认为最简单的方法是将它放在手机上关闭数据连接,启动你的应用程序并查看它是否会抛出NPE。希望它有所帮助

答案 1 :(得分:0)

您可以随时getSystemService(Context.TELEPHONY_SERVICE)

在没有无线电硬件的设备上,getDeviceId()将返回NULL。在具有蜂窝无线电的设备上,即使您禁用IMEI / MEID / ESN,也会获得IMEI / MEID / ESN(即飞行模式,无SIM卡等)。

在Android虚拟设备(AVD,a / k / a模拟器)中,getDeviceId()返回IMEI 000000000000000

在Genymotion的免费版本中,getDeviceId()返回000000000000000的IMEI(但我注意到他们的Lollipop预览设备返回NULL)。如果您有付费版本,则可以使用VM外观上的ID按钮设置任何IMEI。