【问题标题】:Get Current Place using Google Place API使用 Google Place API 获取当前地点
【发布时间】:2015-10-12 12:53:05
【问题描述】:

我正在编写一个应用程序,尝试使用Google Place API 获取当前位置。但我收到以下错误日志:

E/AndroidRuntime(20212): java.lang.IllegalArgumentException: GoogleApiClient is not configured to use the API required for this call.
E/AndroidRuntime(20212):    at com.google.android.gms.common.internal.zzx.zzb(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.internal.zzli.zza(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.location.places.internal.zzj.getCurrentPlace(Unknown Source)
E/AndroidRuntime(20212):    at ala.youngashram.droid.com.ala.ALaActivity.getCurrentLocation(ALaActivity.java:266)
E/AndroidRuntime(20212):    at ala.youngashram.droid.com.ala.ALaActivity.onConnected(ALaActivity.java:149)
E/AndroidRuntime(20212):    at com.google.android.gms.common.internal.zzk.zzh(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.internal.zzlg.zznU(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.internal.zzlg.onConnected(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.internal.zzli$2.onConnected(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.common.internal.zzj$zzg.zzpf(Unknown Source)
E/AndroidRuntime(20212):    at com.google.android.gms.common.internal.zzj$zza.zzc(Unknown Source)

任何我在这里缺少的建议,我需要配置什么来获得这个!

更新的工作代码:感谢@ProblemSlover 分享link

mGoogleApiClient = new GoogleApiClient
                .Builder(this)
                .addApi(Places.GEO_DATA_API)
                .addApi(Places.PLACE_DETECTION_API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

这是用于连接请求:

mGoogleApiClient.connect();

并跟随获取位置,连接成功后调用它:

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
                .getCurrentPlace(mGoogleApiClient, null);

        result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
            @Override
            public void onResult(PlaceLikelihoodBuffer placeLikelihoods) {

                for (PlaceLikelihood placeLikelihood : placeLikelihoods) {
                    log(String.format("Place '%s' has likelihood: %g",
                            placeLikelihood.getPlace().getName(),
                            placeLikelihood.getLikelihood()));
                }

                placeLikelihoods.release();
            }
        });

【问题讨论】:

  • 另外,发布代码 sn-p 会有所帮助。
  • @ProblemSlover 谢谢..它有效..我在设置 GoogleApiClient 时缺少 addApi(Places.PLACE_DETECTION_API) 调用。

标签: android google-api location


【解决方案1】:

请向我们展示您用于配置 GoogleApiClient 的代码。请确保按照入门页面上“连接到 Places API”部分中所述的正确方式完成此操作。 https://developers.google.com/places/android-api/start 这是剪断的配置:

// Your activity
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mGoogleApiClient = new GoogleApiClient
                .Builder(this)
                .addApi(Places.GEO_DATA_API)
                .addApi(Places.PLACE_DETECTION_API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
    }

【讨论】:

    【解决方案2】:

    将此方法添加到您的活动中,并在您的 onCreate 方法中调用它

    private synchronized void buildGoogleApiClient() {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(new MapCallback())
                .addOnConnectionFailedListener(new FailedCallback())
                .addApi(LocationServices.API)
                .build();
    }
    

    【讨论】:

    • Chitti,分享 link 提示对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多