Place Picker 启动后自动关闭
Place Picker Automatically close after launch
我想显示地点选择器,以便用户可以选择 his/her 自己选择的位置。但是放置选择器子 activity 会在启动后自动关闭。我已经多次检查 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"/>
请检查您应用的 logcat 是否有 'PLACES_API_ACCESS_NOT_CONFIGURED' 消息。如果是这种情况,在您的 Google 开发人员控制台中为此项目启用 Google Places API for Android 应该可以解决您的问题。
经过大量调试,我自己解决了。问题是包名..Android studio 在项目创建时自行管理包名。我更改了清单中的包名称,它工作得很好。但是当我从 google 开发人员控制台为地点选择器获取 API 键时,地点选择器会自动关闭而不会出现任何错误。
然后我通过进入 -> Module Settings -> Flavors 更改包名称并更改应用程序 ID 并解决了问题。
只需更改 API 键即可解决问题
您可以从 here
创建一个新密钥
确保为您在 Google API 控制台中使用的 API 键启用 Google Places API。对我来说,我使用的是与地图相同的 API 键。我刚刚也为地方 api 启用了相同的键。那解决了我的问题。
使用此 link 访问 Google 控制台:https://console.developers.google.com/flows/enableapi?apiid=placesandroid&reusekey=true
不启用地点 API,而是启用 android 的地点 SDK。为我工作。
祝你好运:)
同时启用 places API 和 Places sdk
我想显示地点选择器,以便用户可以选择 his/her 自己选择的位置。但是放置选择器子 activity 会在启动后自动关闭。我已经多次检查 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"/>
请检查您应用的 logcat 是否有 'PLACES_API_ACCESS_NOT_CONFIGURED' 消息。如果是这种情况,在您的 Google 开发人员控制台中为此项目启用 Google Places API for Android 应该可以解决您的问题。
经过大量调试,我自己解决了。问题是包名..Android studio 在项目创建时自行管理包名。我更改了清单中的包名称,它工作得很好。但是当我从 google 开发人员控制台为地点选择器获取 API 键时,地点选择器会自动关闭而不会出现任何错误。
然后我通过进入 -> Module Settings -> Flavors 更改包名称并更改应用程序 ID 并解决了问题。
只需更改 API 键即可解决问题
您可以从 here
创建一个新密钥确保为您在 Google API 控制台中使用的 API 键启用 Google Places API。对我来说,我使用的是与地图相同的 API 键。我刚刚也为地方 api 启用了相同的键。那解决了我的问题。 使用此 link 访问 Google 控制台:https://console.developers.google.com/flows/enableapi?apiid=placesandroid&reusekey=true
不启用地点 API,而是启用 android 的地点 SDK。为我工作。 祝你好运:)
同时启用 places API 和 Places sdk