Unten ist mein Code, um neaby Orte an der aktuellen Position zu bekommen. Der Code funktioniert manchmal und manchmal nicht ohne etwas zu ändern. Warum passiert es so? Ich habe die api Schlüssel gültig ist geprüft, Statuscode „ERROR“, sagt der Flugbetrieb ohne detailliertere Informationen über https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes.html#constants Vielen Dank fehlgeschlagen Im Folgenden finden Sie Aktivität:Google Place Api gibt Status {statusCode = FEHLER, Auflösung = null}
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-Datei
<?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>
LOG Bildschirm
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: [email protected]
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}
Können Sie dieses Problem beheben? –
Haben Sie das gleiche Problem, haben Sie eine Lösung gefunden? – mehmetsen80