我正在开发Xamarin.Native,并尝试为Xamarin.Android项目实现安全补丁。
根据Google的此文档,您调用ProviderInstaller.InstallIfNeeded()
或其异步版本。
此方法会引发 2 种类型的异常,GooglePlayServicesRepairableException 和 GooglePlayServicesNotAvailableException。
根据上面的文档,当 Play 服务未安装、过期或禁用时,会引发可修复异常。
我正在尝试在我的物理设备和模拟器上测试所有这些方案,但只能在禁用时进行测试。
当 Google Play 服务过期(设备和模拟器(时,不会引发异常,InstallIfNeeded
正常返回。我有一个带有谷歌播放服务的设备17.7.86
,在撰写本文时,最新版本是20.03.13
.
当未安装Google Play服务(模拟器(时,当我期望获得可修复的异常并弹出一个对话框以让用户安装时,我会GooglePlayServicesNotAvailableException
。
您如何测试Google Play服务何时过期或未安装,以便抛出相应的异常?
GooglePlayServicesNotAvailableException将包含一个ErrorCode。你可以用不同的逻辑来处理它。
try
{
}
catch(GooglePlayServicesNotAvailableException ex)
{
int errorcode = ex.ErrorCode;
}
有关错误代码的更多详细信息,您可以查看 https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult.html#constants_1