当hasSystemFeature为false时,如何检查android设备是否可以发送短信?

时间:2017-07-16 15:36:14

标签: android android-sms

应用程序需要知道它是否能够发送短信。现在我可以看到以下行为模拟器返回false。

getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)

我担心如果它与模拟器返回false,那么真实设备也可能是这种情况? 如果是检查短信功能的正确方法,请确认。

我在SO中找不到任何答案,所以我决定创建一个新答案。

如何重现?

我正在使用API​​版本16的Nexus 5模拟器。  enter image description here

1 个答案:

答案 0 :(得分:0)

是的,它会返回false为什么?

因为模拟器没有电话功能但是如果要启用模拟器设置。但是对于手机来说它会返回true,对于平板电脑来说它会返回false,或者任何没有电话功能的设备都将返回false

更好的方式

if (((TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType()
    == TelephonyManager.PHONE_TYPE_NONE)
{
    // No calling feature available
}

别忘了添加烫发。显示READ_PHONE_STATE