android – Google Place Api提供状态{statusCode = ERROR,resolution = null}

前端之家收集整理的这篇文章主要介绍了android – Google Place Api提供状态{statusCode = ERROR,resolution = null}前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是我的代码,以获取当前位置的neaby位置.代码有时有效,有时不会改变任何东西.为什么会这样.我检查了api密钥是否有效,状态代码“ERROR”表示操作失败,没有关于 https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes.html#constants的更详细信息
谢谢
以下是活动:
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文件

<?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>

日志屏幕

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

@R_502_323@

有很多这个错误代码后,我解决了它在我的模拟器中发送我的GPS位置. 在Android Studio AVD – Android模拟器中,在我的程序运行的情况下,我点击了“更多”> “位置”>设置我的纬度和经度,然后单击“发送”. 立即成功执行了getCurrentLocation()的下一个请求. 您可以在执行应用程序之前将您的位置发送到模拟器.它也会起作用.

猜你在找的Android相关文章