应用程序需要知道它是否能够发送 SMS。现在我可以看到以下行正在为模拟器返回 false。
getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
我担心如果它在模拟器中返回错误,那么真实设备也可能是这种情况?请确认这是否是检查 SMS 功能的正确方法。
我在 SO 中找不到任何答案,所以我决定创建一个新答案。
如何重现?
应用程序需要知道它是否能够发送 SMS。现在我可以看到以下行正在为模拟器返回 false。
getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
我担心如果它在模拟器中返回错误,那么真实设备也可能是这种情况?请确认这是否是检查 SMS 功能的正确方法。
我在 SO 中找不到任何答案,所以我决定创建一个新答案。
如何重现?
是的,它会返回 false 为什么?
因为模拟器没有电话功能但是如果你想启用去模拟器设置。但它会为手机返回 true,而对于平板电脑或任何没有电话功能的设备将返回 false
if (((TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType()
== TelephonyManager.PHONE_TYPE_NONE)
{
// No calling feature available
}
不要忘记添加烫发。表现出来READ_PHONE_STATE