我正在实施Google 的 Directions API。我的应用程序支持minSdkVersion 23,java.time.Instant这里不支持。
是否有解决方案,或者我应该检查用户的版本并在支持该版本的情况下允许此功能?
DirectionsResult directionsResult = DirectionsApi.newRequest(geoApiContext)
.mode(TravelMode.DRIVING)
.origin(new com.google.maps.model.LatLng(mapFragment.getUserCoords().latitude, mapFragment.getUserCoords().longitude))
.destination(tabHandlerCommunication.destinationBarCoords)
.departureTime(Instant.now()) // <-- error here
.await();
Run Code Online (Sandbox Code Playgroud)
错误:
调用需要 API 级别 26(当前最小值为 23):java.time.Instant#now less... (Ctrl+F1) 检查信息:此检查扫描应用程序中的所有 Android API 调用并警告任何调用不适用于此应用程序针对的所有版本(根据清单中的最小 SDK 属性)。如果你真的想使用这个 API 并且不需要支持旧设备,只需在你的 build.gradle 或 AndroidManifest.xml 文件中设置 minSdkVersion 。如果您的代码有意访问较新的 API,并且您已确保(例如使用条件执行)此代码只会在受支持的平台上调用,那么您可以使用指定本地最小 SDK 的 @TargetApi 注释来注释您的类或方法申请,例如@TargetApi(11),以便此检查将 11 而不是清单文件的最低 SDK 作为所需的 API 级别。如果您有意在样式定义中设置 android: 属性,请确保将其放在 values-vNN 文件夹中,以避免在某些设备上遇到运行时冲突,其中制造商添加了自定义属性,而这些自定义属性的 id 与以后平台上的新属性发生冲突. 同样,您可以在 XML 文件中使用 tools:targetApi="11" 来指示元素只会在适当的上下文中膨胀。问题编号:NewApi 确保将其放在 values-vNN 文件夹中,以避免在某些设备上遇到运行时冲突,这些设备制造商添加了自定义属性,其 id 与更高平台上的新属性冲突。同样,您可以在 XML 文件中使用 tools:targetApi="11" 来指示元素只会在适当的上下文中膨胀。问题编号:NewApi …