引发Google Awareness Snapshot.getLocation SecurityException

时间:2016-09-11 10:38:41

标签: android google-awareness

我知道这似乎是(Google Awareness API SecurityException is thrown)的副本,它可能是因为我的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是一个失败而不是崩溃我的应用程序?

2 个答案:

答案 0 :(得分:0)

来自:https://code.google.com/p/android/issues/detail?id=223751

我们的检查中存在一个错误,当有网络错误进行身份验证时,有时会抛出此SecurityException。该修补程序将在下一版Google Play服务中推出。

目前,最好的解决方法是在您调用GoogleApiClient.connect()的线程上设置UncaughtExceptionHandler。对于大多数人来说,这将在主线程上,您可以通过Looper.myLooper()。getThread()获得。

答案 1 :(得分:-1)

在对GoogleApiClient.connect()的调用中抛出SecurityException。有关解决方法,请参阅Google Awareness API SecurityException is thrown