我想显示地方选择器,以便用户可以选择他/她自己选择的位置。但是地点选择器子活动在发布后会自动关闭。我已多次检查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"/>
答案 0 :(得分:27)
请检查您应用的logcat是否有“PLACES_API_ACCESS_NOT_CONFIGURED”消息。如果是这种情况,请在您的Google Developer Console中为此项目启用适用于Android的Google Places API,以解决您的问题。
答案 1 :(得分:10)
经过大量调试后我自己解决了。问题是包名称..Android工作室在项目创建时自行管理包名。我在清单中更改了包名称,它工作得很好。但是当我从谷歌开发者控制台获取地方选择器的API密钥时,地方选择器会自动关闭而不会出现单个错误字符。
然后我通过进入 - &gt;更改包名称模块设置 - &gt;调味并更改应用程序ID并解决问题。
答案 2 :(得分:2)
确保为您在Google API控制台中使用的API密钥启用了Google Places API。对我来说,我使用的是与地图相同的API密钥。我刚为地点api启用了相同的密钥。这解决了我的问题。 使用此链接访问Google控制台:https://console.developers.google.com/flows/enableapi?apiid=placesandroid&reusekey=true
答案 3 :(得分:1)
只需更改API密钥即可解决问题
您可以从here
创建新密钥答案 4 :(得分:0)
启用Android的Places SDK,而不是启用places API。为我工作。 祝你好运:)
答案 5 :(得分:0)
同时启用Places API和Places sdk