检查设备是否有蜂窝网络

时间:2016-03-22 04:15:13

标签: android

我有7英寸三星Tab 4.它只有互联网的蜂窝网络,但没有电话功能。我创建了一个应用程序来检查是否有电话功能除了只有数据服务但没有电话服务的选项卡外,所有选项卡/电话都能正常工作。

我该如何检查:

PackageManager pm = this.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY))
{
  //PHONE DEVICE
}
else
{
  //TAB Device
}

如果没有电话功能,如何解决此问题。让我知道!

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试以下代码,它可能对您有帮助。

if (((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType()
            == TelephonyManager.PHONE_TYPE_NONE || ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number()
            == null) {
        // No Phone
        // Do as per your need
    } else {
        PackageManager pm = this.getPackageManager();
        if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
            //PHONE DEVICE
        } else {
            //TAB Device
        }
    }

这将需要READ_PHONE_STATE权限。

答案 1 :(得分:0)

为了检查设备是否是手机,它必须具备语音功能。 TelephonyManager有一个显式获取此值的方法isVoiceCapable()。这可以确定如下:

TelephonyManager tm = 
   (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if(tm.isVoiceCapable()) { 
    // PHONE
} else {
    // TABLET
}

如果TelephonyManager不支持语音,则它不是电话,但可能具有数据功能。可以找到更多信息here