不幸的是我在
Android Place Picker closes immediately after launch找不到答案.对我来说PlacePicker启动,显示位置为Unknown,然后返回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
解决方法
请确保您已将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