8

我想根据 SIM 硬件是否存在,在我的应用程序中禁用与 CALL 和 SMS 相关的功能。现在初学者的方法是使用以下方法检查电话类型:

if (telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)

如果为真,则支持。

一切都很好,直到我遇到了仅支持数据和消息传递的 SIM 卡的 Sony Tablet S。没有语音支持。所以对于这个设备,我只需要禁用 CALL 功能,但继续支持 SMS。索尼平板电脑返回 TelephonyManager.PHONE_TYPE_NONE 所以我不能使用上述方法。还 ,

telephonyManager1.getSimState();

返回 1 即 SIM_STATE_ABSENT,对于不支持 SIM 硬件本身的 HTC FLYER,这也是相同的。

那么有什么方法可以让我知道是否有 SIM 硬件(不管是否插入了 SIM 卡)?

4

1 回答 1

0

利用

PackageManager pm = this.getPackageManager();
boolean hasTelephony=pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);

编辑:

尝试使用

TelephonyManager.getLine1Number()

如果这返回 null 那么您将没有电话功能。没试过。试一试

于 2012-08-17T09:51:14.260 回答