8

不幸的是,我在Android Place Picker closes after launch找不到答案。对我来说, PlacePicker 启动,显示位置为未知,然后返回 resultCode 2。

重申一些事实:到目前为止,我的应用程序有两个活动。第一个活动是地图,到目前为止工作正常;那里没问题。第二个活动有一个按钮,允许用户启动 PlacePicker。第一个活动毫无问题地启动地图这一事实应该向读者强调我的清单很好,并且我的 Google Api 控制台具有正确的数据。所以这给我留下了:我做错了什么?我使用的确切示例为https://developers.google.com/places/android-api/placepicker。事实上这是我的代码

try {
  IntentBuilder builder = new IntentBuilder();
  startActivityForResult(builder.build(this), REQUEST_PLACE_PICKER);
} catch (GooglePlayServicesRepairableException e) {
  e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
  e.printStackTrace();
}

接着

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (RESULT_OK != resultCode) {
        Log.d(TAG,"bad result: "+resultCode);
        return;
    }
    if (REQUEST_PLACE_PICKER == requestCode) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
}

这是我的完整日志

 D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
 W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
 D/SRIB_DCS: log_dcs ThreadedRenderer::initialize entered! 
 D/AddLocationActivity: bad result: 2
4

3 回答 3

0

检查您的应用程序的 API 仪表板。如果您没有看到“Places SDK for Android”API 的 API 命中,可能是该 API 未启用。如果您看到此 API 被命中,请检查错误。如果您看到 403 错误,可能是您使用了 1) 错误的 Android 密钥或 2) 错误的应用程序限制或 3) 错误的 API 限制或这些的组合。

于 2018-10-08T07:18:22.400 回答
0

我通过登录我的 Google Developer Console 解决了这个问题。然后前往 Api > Dashboard,然后单击启用 APIS 和服务。

链接到 Google Developer Api 仪表板

于 2018-01-17T22:09:29.540 回答
0

请确保您已将 sha-1 密钥添加到 google api 控制台。

如何获取 SHA-1 指纹: https ://developers.google.com/places/android-api/signup#debug-cert 理想情况下,您可以将调试密钥 SHA-1 和发布密钥 SHA-1 添加到控制台,这样两个键都可以使用 api。

您应该完成此页面上描述的步骤,并确保您没有跳过任何内容: https ://developers.google.com/places/android-api/signup#api-console

于 2017-06-19T08:18:42.643 回答