【问题标题】:How can I check if a device supports SMS?如何检查设备是否支持短信?
【发布时间】:2017-12-07 15:57:47
【问题描述】:

我想在没有 SIM 卡插槽的平板电脑上以编程方式禁用 SMS 功能。

我试过这个:

if (context.getSystemService(Context.TELEPHONY_SERVICE) != null)
{
    // SMS features: enable
}
else
{
    // SMS features: disable
}

但是在我的 NVidia Shield Tablet K1(没有 sim 卡插槽)context.getSystemService(Context.TELEPHONY_SERVICE) 上返回了一些东西,看起来我有电话服务。

我的代码有什么问题?

【问题讨论】:

  • 如果给定功能不可用,getSystemService 不会返回 null。我不知道你为什么认为它会,文档中没有任何东西说它会。

标签: android sms


【解决方案1】:

在这种情况下,我不会假设 getSystemService() 检索 TelephonyManager 一定会返回 null

检查电话的官方方法是在PackageManager 上拨打hasSystemFeature(PackageManager.FEATURE_TELEPHONY),您可以通过拨打getPackageManager() 获得。

我已经清理了我的 NVIDIA Shield K1,并在该设备上从hasSystemFeature(PackageManager.FEATURE_TELEPHONY) 收到了false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多