我注意到一些android设备(Galaxy Fold系列不是flip)在调用getSMSSupport()时返回SMS_NOT_SUPPORTED,尽管该设备显然支持SMS,因为它在权限中列出了SMS,并且能够发送SMS。下面的示例代码返回SMS_NOT_SUPPORTED。但是,如果我注释掉情况SMS_NOT_SUPPORTED默认的消息传递应用程序打开它应该等。
try {
switch(Display.getInstance().getSMSSupport()) {
case Display.SMS_NOT_SUPPORTED:
errMes = "SMS not supported by this device";
return false;
case Display.SMS_SEAMLESS:
Display.getInstance().sendSMS(formatedIntercomTele,intercomMes, false);
return true;
case Display.SMS_INTERACTIVE:
Display.getInstance().sendSMS(formatedIntercomTele,intercomMes, true);
return true;
default:
Display.getInstance().sendSMS(formatedIntercomTele,intercomMes, true);
return true;
}
} catch (IOException ex) {
errMes = "Unable to send message";
return false;
}
我使用不同API级别的各种模拟器运行我的应用程序。例如,API 30将适用于翻盖手机或标准手机,但API 30将返回不支持任何折叠式手机,其中设备像书一样打开,如Galaxy Z折叠式3。
我认为我们可能需要将这些代码调整到Galaxy Fold样式的设备上。为了避免权限提示,这个API使用了一个简单的启发式方法来检查这是平板电脑还是台式机。
这曾经是有效的,但是像这样的设备既是手机又是平板电脑,这是我们在编写代码时没有预料到的。我想我们需要修正一下方法。我建议就此提出一个问题。