Android Place Picker (PlacePicker) hat nach der Aktualisierung auf Google Play Services 9.0.83 kein Suchsymbol mehr.

or kurzem haben einige meiner Benutzer gemeldet, dass dassearch icon war aus dem PlacePicker-Widget verschwunden. Ich konnte das Problem auf die Aktualisierung auf Google Play Services 9.0.83 eingrenzen. Hat jemand eine Problemumgehung gefunden, um das Suchsymbol wieder zu erhalten?

Aktualisieren Mir ist auch aufgefallen, dass dassetLatLngBounds ()ie @ -Methode der PlacePicker.IntentBuilder-Klasse funktioniert nach der Aktualisierung auf 9.0.83 nicht mehr ordnungsgemäß. Es zentriert die Karte auf 0 Lat, 0 Long Out im Ozean vor der Küste Afrikas. Solange ich setLatLngBounds () nicht aufrufe, zentriert sich der PlacePicker an meinem aktuellen Standort.

Aktualisieren Ich habe eine Idee, aber ich brauche die Hilfe aller. Gestützt auf Informationen von dieser Website apkmirror.com Es gibt Subversionen von 9.0.83, die auf der CPU und der Bildschirm-DPI basieren. Wählen Sie im Anwendungsmanager Google Play Services aus und die Subversion sollte in Klammern neben der Version stehen. Meine ist 440-121911109, bitte posten Sie Ihre in den Kommentaren wenn Sie das gleiche Problem haben. Vielleicht finden wir einen gemeinsamen Nenner.

Vor dem Update auf Google Play Services 9.0.83

Nach dem Update auf Google Play Services 9.0.83

static final int PPR = 41;
private GoogleApiClient googleApiClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.place_picker_activity);

    googleApiClient = new GoogleApiClient
            .Builder(this)
            .addApi(Places.GEO_DATA_API)
            .addApi(Places.PLACE_DETECTION_API)
            .enableAutoManage(this, this)
            .build();

    Button btnLaunch = (Button) findViewById(R.id.buttonLaunch);
    btnLaunch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (googleApiClient.isConnected()) {
                try {
                    PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
                    startActivityForResult(builder.build(PlacePickerActivity.this), PPR);
                } catch (GooglePlayServicesRepairableException e) {
                    e.printStackTrace();
                } catch (GooglePlayServicesNotAvailableException e) {
                    e.printStackTrace();
                }
            } else {
                Toast.makeText(getApplicationContext(),"Google api not connected yet", Toast.LENGTH_SHORT).show();
            }
        }
    });
}

@Override
protected void onStart() {
    super.onStart();
    googleApiClient.connect();
}

@Override
protected void onStop() {
    super.onStop();
    if (googleApiClient.isConnected()) {
        googleApiClient.disconnect();
    }
}

@Override
public void onConnected(Bundle connectionHint) { }

@Override
public void onConnectionFailed(ConnectionResult result) {
    Toast.makeText(getApplicationContext(), "Connection failed: " + result.getErrorCode(), Toast.LENGTH_LONG).show();
}


@Override
public void onConnectionSuspended(int cause) {
    Toast.makeText(getApplicationContext(), "Connection suspended",Toast.LENGTH_LONG).show();
    googleApiClient.connect();
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PPR) {
        if (resultCode == RESULT_OK) {
            Place place = PlacePicker.getPlace(this, data);
            Toast.makeText(this, ""+place.getName(), Toast.LENGTH_LONG).show();
        }
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage