首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google给出状态{statusCode=ERROR,resolution=null}

Google给出状态{statusCode=ERROR,resolution=null}
EN

Stack Overflow用户
提问于 2016-07-06 10:35:19
回答 2查看 4.9K关注 0票数 8

下面是我的代码,可以在当前的location.The代码中找到合适的位置,有时甚至可以工作,但不需要更改任何内容。为什么会这样。我检查了api键是否有效,状态代码"ERROR“表示操作失败,没有关于https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes.html#constants的更多详细信息--谢谢,下面是活动:

代码语言:javascript
复制
public class PlacesAPIActivity extends AppCompatActivity implements
        OnConnectionFailedListener, GoogleApiClient.ConnectionCallbacks {
    private static final String LOG_TAG = "PPPPPPPPPPPPPPPPP";
    private static final int GOOGLE_API_CLIENT_ID =0;
    private GoogleApiClient mGoogleApiClient;
    private static final int PERMISSION_REQUEST_CODE = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_places_api);
        Log.d("resuktfvvvfdfd", "onCreate: ");
        buildGoogleApiClient();}

    private synchronized void buildGoogleApiClient()
    {  Button currentButton = (Button) findViewById(R.id.currentButton);
        mGoogleApiClient = new GoogleApiClient.Builder(PlacesAPIActivity.this)
                .addApi(Places.PLACE_DETECTION_API)
                .addApi(Places.GEO_DATA_API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .enableAutoManage(this, GOOGLE_API_CLIENT_ID, this)
                .build();
        mGoogleApiClient.connect();
        Log.d("connected", String.valueOf(mGoogleApiClient.isConnected()));
        currentButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mGoogleApiClient.isConnected()) {
                    Log.d("connected1", String.valueOf(mGoogleApiClient.isConnected()));
                    if (ContextCompat.checkSelfPermission(PlacesAPIActivity.this,
                            Manifest.permission.ACCESS_FINE_LOCATION)
                            != PackageManager.PERMISSION_GRANTED) {
                        ActivityCompat.requestPermissions(PlacesAPIActivity.this,
                                new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                                PERMISSION_REQUEST_CODE);
                    } else {
                        callPlaceDetectionApi();
                    }

                }
            }
        });
    }



    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        Log.e(LOG_TAG, "Google Places API connection failed with error code: "
                + connectionResult.getErrorCode());

        Toast.makeText(this,
                "Google Places API connection failed with error code:" +
                        connectionResult.getErrorCode(),
                Toast.LENGTH_LONG).show();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode,
                                           String permissions[], int[] grantResults) {
        switch (requestCode) {
            case PERMISSION_REQUEST_CODE:
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    callPlaceDetectionApi();
                }
                break;
        }
    }

    private void callPlaceDetectionApi() throws SecurityException {

        Log.d("mvkvkmvkmvkm", "callPlaceDetectionApi: ");
        PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
                .getCurrentPlace(mGoogleApiClient, null);
        Log.d("result", result.toString());
        result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
            @Override
            public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
                System.out.println("inside callback...");
                Status status = likelyPlaces.getStatus();
                System.out.println("Status.tostring"+status.toString());
                System.out.println(status.isSuccess());
                System.out.println(status.getStatusCode());
                System.out.println(status.getStatusMessage());
                System.out.println(status.getStatus());
                for (PlaceLikelihood placeLikelihood : likelyPlaces) {
                    Log.i(LOG_TAG, String.format("Place '%s' with " +
                                    "likelihood: %g",
                            placeLikelihood.getPlace().getName(),
                            placeLikelihood.getLikelihood()));
                }
                likelyPlaces.release();
            }
        });
    }




    @Override
    public void onStop() {
        super.onStop();


        mGoogleApiClient.disconnect();
    }

    @Override
    public void onConnected(@Nullable Bundle bundle) {

    }

    @Override
    public void onConnectionSuspended(int i) {

    }
}

Android MAnifest文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.******">
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".PlacesAPIActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

       <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

        <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="A***************************o"/>
    </application>
</manifest>

日志屏幕

代码语言:javascript
复制
07-06 15:56:32.499 10925-10925/com.example.nearby D/connected1: true
07-06 15:56:32.500 10925-10925/com.example.nearby D/mvkvkmvkmvkm: callPlaceDetectionApi: 
07-06 15:56:32.554 10925-10925/com.example.nearby D/result: com.google.android.gms.location.places.internal.zzj$1@5dd8757
07-06 15:56:42.610 10925-10925/com.example.nearby I/System.out: inside callback...
07-06 15:56:42.610 10925-10925/com.example.nearby I/System.out: Status.tostringStatus{statusCode=ERROR, resolution=null}
07-06 15:56:42.610 10925-10925/com.example.nearby I/System.out: false
07-06 15:56:42.610 10925-10925/com.example.nearby I/System.out: 13
07-06 15:56:42.611 10925-10925/com.example.nearby I/System.out: ERROR
07-06 15:56:42.611 10925-10925/com.example.nearby I/System.out: Status{statusCode=ERROR, resolution=null}
EN

回答 2

Stack Overflow用户

发布于 2017-02-08 01:21:53

经过大量的错误代码,我解决了它发送我的GPS位置在我的模拟器。在Android模拟器中,在运行我的程序时,我单击"More“> "Location”>“设置我的纬度和经度”,然后单击"Send“。立即成功地执行了对getCurrentLocation()的下一个请求。在执行应用程序之前,您可以将您的位置发送到模拟器。它也会起作用。

票数 0
EN

Stack Overflow用户

发布于 2017-06-17 18:05:04

在我的例子中,Google Places如果不初始化Google Map就无法正常工作,如本例https://developers.google.com/places/android-api/current-places-tutorial所述。

代码语言:javascript
复制
/**
 * Builds the map when the Google Play services client is successfully connected.
 */
@Override
public void onConnected(Bundle connectionHint) {
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38221930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档