web-dev-qa-db-ja.com

起動後にピッカーを自動的に閉じる

場所ピッカーを表示して、ユーザーが自分の場所を選択できるようにしたい。ただし、プレースピッカーの子アクティビティは、起動後に自動的に閉じます。 APIキーとその他の権限を複数回確認しましたが、すべて問題ありません。ここにすべてのコードがあります。助けてください!

task_location.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder();
                Intent intent = intentBuilder.build(NewTaskActivity.this);
                // Start the Intent by requesting a result, identified by a request code.
                startActivityForResult(intent, 123);


            } catch (GooglePlayServicesRepairableException e) {
                GooglePlayServicesUtil
                        .getErrorDialog(e.getConnectionStatusCode(), NewTaskActivity.this, 0);
            } catch (GooglePlayServicesNotAvailableException e) {
                Toast.makeText(NewTaskActivity.this, "Google Play Services is not available.",
                        Toast.LENGTH_LONG)
                        .show();
            }
        }
    });

そして、これがメニフェストファイルです。

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission Android:name="Android.permission.WAKE_LOCK" />

<uses-feature
    Android:glEsVersion="0x00020000"
    Android:required="true" />
<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme"
    tools:replace="Android:icon">

    <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="AIzaSyAjM9hWUXm8vlABqFbM_fJfQgIFli8HP1E"/>
13
Zeeshan Ahmed

多くのデバッグの後、私はそれを自分で解決しました。問題はパッケージ名でした。AndroidStudioはプロジェクトの作成時にパッケージ名を自分で管理していました。マニフェストでパッケージ名を変更すると、完全に問題なく動作しました。しかし、Google開発者コンソールからプレイスピッカー用のAPIキーを取得すると、プレイスピッカーが1文字のエラーもなく自動的に閉じます。

次に、-> Module Settings-> Flavorsに移動してパッケージ名を変更し、アプリケーションIDを変更して問題を修正します。

10
Zeeshan Ahmed

アプリのlogcatで「PLACES_API_ACCESS_NOT_CONFIGURED」メッセージを確認してください。この場合、このプロジェクトのGoogle Developer ConsoleでAndroidに対してGoogle Places APIを有効にすることで問題が解決するはずです。

27
mkaminski

Google APIコンソールで使用しているAPIキーに対してGoogle Places APIが有効になっていることを確認してください。私は、マップに使用するのと同じAPIキーを使用しています。 Places APIにも同じキーを有効にしただけです。それで問題は解決しました。次のリンクを使用して、Googleコンソールにアクセスします。 https://console.developers.google.com/flows/enableapi?apiid=placesandroid&reusekey=true

2
Gopi Ande

APIキーを変更するだけで問題を解決

ここ から新しいキーを作成できます

1
Android Dev

Places APIとPlaces SDKの両方を有効にする

0
Mayank Mishra

Places APIを有効にする代わりに、Places SDK for Androidを有効にします。私のために働いた。幸運を :)