我已经逐步遵循了他们的文档,但是没有用
meta-data
android:name="com.google.android.geo.API_KHTYEY"
android:value="API_KEY_KEY_HERE"/>
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
try {
startActivityForResult(builder.build(activity), PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
});
结果:地点选择器活动开始但立即关闭。 我试图找到解决方案,但每个人都在谈论将api_key放在正确的位置。这绝对不是我的问题,因此任何人都可以阐明这一点吗?
答案 0 :(得分:1)
看起来,要在整个弃用期内使用Place Picker,您需要启用“ Android版Places SDK”服务。从2019年1月29日开始,谷歌不再允许用户启用该服务,因此如果您在2019年1月29日之前未启用该服务,则无法使用Place Picker。目前,您只能启用“ Places API”,该功能不适用于Place Picker(仅适用于Android的Places SDK)。我有同样的问题,请看这里:Android Place Picker with API KEY created after January 29, 2019
答案 1 :(得分:0)
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
openPlacePicker ();
}
});
private void openPlacePicker() {
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder ();
try {
startActivityForResult ( builder.build ( this ), PLACE_PICKER_REQUEST );
//Enable Wifi
wifiManager.setWifiEnabled ( true );
} catch (GooglePlayServicesRepairableException e) {
// Log.d("Exception",e.getMessage());
e.printStackTrace ();
} catch (GooglePlayServicesNotAvailableException e) {
//Log.d("Exception",e.getMessage());
e.printStackTrace ();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult ( requestCode, resultCode, data );
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PLACE_PICKER_REQUEST:
Place place = PlacePicker.getPlace ( MainActivity.this, data );
double latitude = place.getLatLng ().latitude;
double longitude = place.getLatLng ().longitude;
CharSequence address = place.getAddress ();
String PlaceLatLng = String.valueOf ( latitude ) + " , " + String.valueOf ( longitude );
tv_MyLocation.setText ( PlaceLatLng );
}
}