我重复使用Android团队的Google PlaceAutocomplete示例项目中的代码。
我为每个项目使用了不同的密钥(在Google控制台中也启用了Google商店版Android)。
当我构建并运行示例项目时,它没有问题。
然而,当我从我的应用程序运行它时,有时它正在工作,有时我得到未知状态代码:9000(来自status.toString())。
我在控制台上得到了这个:
04-08 01:15:39.331 16148-10791/? W/Places﹕ f.a:633: gLocReplyElement unsuccessful status: 1
04-08 01:15:39.332 16148-10791/? W/Places﹕ f.a:660: gPlaceQueryResult unsuccessful responseCode: 26
04-08 01:15:39.339 10558-11608/com.travelapp.karet W/karet﹕ Error getting autocomplete prediction API call: Status{statusCode=unknown status code: 9000, resolution=null}
这很奇怪,所以当我输入s时,我(开始建议地点),n,g。所以当我到达第四个字母时,我偶尔会遇到这个错误。
所以唯一不同的部分只是我传递给mgoogleApiClient.enableAutoManage()的int值clientId
示例项目使用0,而我的项目使用9993938838939(随机数)。 - 我不确定我应该放在什么价值(它拒绝其他应用程序已经使用过的数字)
除此之外,代码没有什么不同(只是我把googleclient变量放在Activity上,而是片段上的实际自动完成实现)
请帮忙。
答案 0 :(得分:6)
我遇到了同样的问题,并且能够解决它。清单文件中有三件事要做,以使演示工作:
1-添加<uses-permission android:name="android.permission.INTERNET" />
,如果还没有。
2-用您的api密钥替换ADD_YOUR_API_KEY_HERE
。您可以使用以下链接生成api密钥:Google Places Sign Up。
3-将演示应用的Android应用包添加到允许的应用列表中,如下所示:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;com.example.google.playservices.placecomplete
要添加到允许的应用列表,请访问Google Developers Console。然后选择您正在处理的项目。在左侧,单击&#34; API&amp; AUTH&#34;链接,然后点击&#34;凭据&#34;链接。之后,点击&#34;编辑允许的Android应用程序&#34;按钮。现在您可以输入演示应用程序的应用程序包,例如<{1}}在文本框中。
注意: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX =您的SHA1证书指纹
答案 1 :(得分:3)
确保已将所需值添加到AndroidManifest.xml
许可:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
元数据:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="ADD_YOUR_API_KEY_HERE"/>
查看示例AndroidManifest.xml here
答案 2 :(得分:2)
Please ensure the folowing.
1. The package name given in console registration page must be same as that of actvity/fragment we are using. ie; if are using this auto search button inside com.example.rajeesh.UI.fragements.SearchFragment,
then inside console registration page package name should be
com.example.rajeesh.UI.fragements
This is different from the package name we given in manifest file.
2. Inside manifest please change
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_api_key" />
to
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_api_key" />
3. Enable Google Places API for Android in console page.