7

ごく最近、一部のユーザーから、PlacePicker UI ウィジェットから検索アイコンが消えたという報告がありました。問題を Google Play サービス 9.0.83 へのアップデートに切り分けることができました。検索アイコンを元に戻すための回避策を見つけた人はいますか?

更新: 9.0.83 に更新した後、PlacePicker.IntentBuilder クラスのsetLatLngBounds()メソッドが正しく機能しなくなったことにも気付きました。マップの中心は、アフリカ沖の海の緯度 0 度、経度 0 度です。setLatLngBounds() を呼び出さない限り、PlacePicker は現在の場所に集中します。

更新:アイデアはありますが、みんなの助けが必要です。この Web サイトapkmirror.comからの情報 に基づくと、CPU と画面 DPI に基づく 9.0.83 のサブバージョンがあります。アプリケーション マネージャーで Google Play Services を選択すると、バージョンの横の括弧内にサブバージョンが表示されます。私の場合は440-121911109 です。同じ問題が発生している場合は、コメントに投稿してください。共通点を見つけることができるかもしれません。

Google Play サービス 9.0.83 にアップデートする前に
Google Play サービス 9.0.8 にアップデートする前に

Google Play サービス 9.0.83 へのアップデート後
Google Play サービス 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();
        }
    }
}
4

1 に答える 1