使用Desugaring遇非SDK接口警告,咨询上架Google Play可行性及旧API替代方案
问题解答
1. 带有这类警告的应用能否更新上架Google Play?
可以正常上架更新。你提到的这些接口标记为greylist-max-o,意思是仅在Android O(API 26)及更低版本中属于灰名单接口,Google Play目前不会因为这类灰名单接口的使用而拒绝应用上架。
灰名单接口是Android系统中允许开发者使用的非SDK接口,只是Google可能在未来的系统版本中对其进行限制,但当前阶段(包括针对旧版本兼容的场景)完全合规。而且这个问题是由官方Desugaring库引入的,属于官方兼容方案的附带情况,不会触发Google Play的审核拦截。
2. 旧API中类似ZonedDateTime.getAvailableZoneIds的替代函数
在API < 26的设备上,可以直接使用TimeZone.getAvailableIDs()来替代,这个方法从API 1就已存在,返回的时区ID集合(比如"Asia/Shanghai"、"Europe/London")和ZonedDateTime.getAvailableZoneIds()完全一致,直接就能满足获取所有可用时区ID的需求。
如果需要将这些ID转换为ZoneId对象(配合Desugaring使用),可以直接调用ZoneId.of(String zoneId),Desugaring会处理低版本的兼容逻辑。
内容的提问来源于stack exchange,提问作者jlsogorb
相关产品推荐
相关产品推荐

