O Seletor de local Android (PlacePicker) não possui mais o ícone Pesquisar após atualizar para o Google Play Services 9.0.83
Muito recentemente, alguns dos meus usuários começaram a relatar que oícone de pesquisa desapareceu do widget da interface do usuário do PlacePicker. Consegui isolar o problema para atualizar para o Google Play Services 9.0.83. Alguém encontrou uma solução alternativa para recuperar o ícone de pesquisa novamente?
Atualizar: Notei também que osetLatLngBounds () O método da classe PlacePicker.IntentBuilder não funciona mais corretamente após a atualização para 9.0.83. Ele centraliza o mapa em 0 lat, 0 por muito tempo no oceano, na costa da África. Desde que eu não chame setLatLngBounds (), o PlacePicker se centralizará na minha localização atual.
Atualizar: Eu tenho uma ideia, mas preciso da ajuda de todos. Com base nas informações deste siteapkmirror.com existem subversões do 9.0.83 baseadas na CPU e no DPI da tela. No Application Manager, selecione Google Play Services e a subversão deve estar entre parênteses ao lado da versão, a minha é440-121911109, por favor, poste o seu nos comentários se você está tendo o mesmo problema. Talvez possamos encontrar um denominador comum.
Antes de atualizar para o Google Play Services 9.0.83
Após a atualização para o 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();
}
}
}