我想根据 SIM 硬件是否存在来禁用我的应用程序中与 CALL 和 SMS 相关的功能。现在,初学者的方法是使用以下命令检查电话类型:
if (telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)
如果为真则支持。
一切都很好,直到我遇到了 Sony Tablet S,它只支持数据和消息传递的 SIM 卡。没有语音支持。因此,对于此设备,我只需要禁用呼叫功能,但继续支持短信。
索尼平板电脑返回 TelephonyManager.PHONE_TYPE_NONE 所以我无法使用上述方法。
还 ,
telephonyManager1.getSimState();
返回 1,即 SIM_STATE_ABSENT,这在 HTC FLYER 的情况下也是相同的,因为 HTC FLYER 本身不支持 SIM 硬件。
那么有什么方法可以让我知道 SIM 硬件是否存在(无论是否插入 SIM 卡)?
Use
PackageManager pm = this.getPackageManager();
boolean hasTelephony=pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
Edit:
尝试使用
TelephonyManager.getLine1Number()
如果返回 null,那么您将没有电话功能。没试过。试一试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)