我知道这看起来像是(Google Awareness API SecurityException is throwed)的重复,它可能是,但由于我的 stackoverflow mojo 不够好,我无法投票或添加评论,这绝对不是答案。所以我提前为重复道歉。
在上面的案例中,我看到大约 10% 的感知 api 调用(120K 成功 + 1.2K 失败)收到带有 -1 响应代码的 SecurityException,我按照当前响应者的建议来验证包名称是否与 Awareness 中注册的名称匹配API 注册步骤,它们确实匹配。如果事实上,如果我强迫它们不同,我会得到相同的异常,但响应代码为 6 而不是 -1;但是这种情况发生的失败不是间歇性地发生在每个请求上。当我查看开发人员控制台中的 Google Awareness API 概述时,我看到的崩溃数量与服务器错误 (5XX) 响应的数量大致相同。
然而,我的问题是,如果 Snapshot API 提供类似的方法
public static PendingResult<LocationResult> getLocation(GoogleApiClient client)
当异常发生在内部代码自己创建的单独线程中时,此方法的使用无法捕获它调用的代码抛出的 SecurityException。为什么 Awareness API 代码不能捕获 SecurityException 并像 LocationResult 失败一样处理它,而不是让我的应用程序崩溃?