在Android中使用Place picker google API选择匿名位置的位置时禁用选择按钮

Dr_*_*ang 16 android google-maps google-places-api

我想用位置字段保存用户表单信息.对于位置我想在用户点击地图上的位置和填写后的位置到表单时,在某个按钮点击和位置上打开谷歌地图.

我找到了地方选择器作为相关的解决方案,所以我使用了Place Picker Google API,我可以打开谷歌地图,当我将箭头移到首选位置并点击选择此位置(显示黑色,现在坐标显示在该位置下).

确认框打开,有2个选项:

1.)更改位置
2.)选择(禁用模式)

我想选择匿名位置并返回主要活动.

以下是我的代码:

private TextView get_place;
int PLACE_PICKER_REQUEST    =   1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    get_place   =   (TextView)findViewById(R.id.textView1);
    get_place.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            PlacePicker.IntentBuilder builder   =   new PlacePicker.IntentBuilder();
            Intent intent;
            try {
                intent  =   builder.build(getApplicationContext());
                startActivityForResult(intent,PLACE_PICKER_REQUEST );
            } catch (GooglePlayServicesRepairableException e) {
                e.printStackTrace();
            } catch (GooglePlayServicesNotAvailableException e) {
                e.printStackTrace();
            }
        }
    });
}

protected void onActivityResult( int requestCode , int resultCode , Intent data ){
    if( requestCode == PLACE_PICKER_REQUEST)
    {
        if(resultCode == RESULT_OK)
        {
            Place place =   PlacePicker.getPlace(data,this);
            Double latitude = place.getLatLng().latitude;
            Double longitude = place.getLatLng().longitude;
            String address = String.valueOf(latitude)+String.valueOf(longitude);
            get_place.setText(address);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当前位置坐标不可见

有效的XHTML.

单击SELECT THIS BUTTON后,打开下面的窗口,选择按钮被禁用

有效的XHTML.

请告诉我,如果还有其他最佳解决方案.代码回复将非常有用或参考链接.

Xak*_*iru 8

解决方案:从开发者控制台启用适用于Android的Google Places API.


Dil*_*ave 2

我遇到了同样的问题(请参阅原始帖子中的评论),结果是由于文件中的 API 密钥条目不匹配引起的AndroidManifest.xml

我正在使用 Xamarin.Android,但 Java 中的原理应该是相同的 - 但您的情况可能会有所不同。

基本上我的应用程序使用的是 Maps API,并且在我的清单中我将 API 密钥指定为com.google.android.maps.v2.API_KEY- 并且一切正常。当我实现地点选择器时,我需要将键名称更改为com.google.android.geo.API_KEY(我不必更改键本身!)。我已经为调试配置执行了此操作,但没有为发布配置执行此操作 - 发布配置仍然使用 Maps 键名称。因此,构建一个可发布的包会产生一个满足 Maps API 但不满足 Places 的清单。

更改发布配置解决了我的问题。