我为每个项目使用了不同的密钥(还在谷歌控制台中启用了Google Places for 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上,但是片段上的实际自动完成实现)
请帮忙.
解决方法
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.然后选择您正在处理的项目.在左侧,单击“API& auth”链接,然后单击“凭据”链接.之后,单击“编辑允许的Android应用程序”按钮.现在您可以输入演示应用程序的应用程序包,例如XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;文本框中的com.example.google.playservices.placecomplete.
注意:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX =您的SHA1证书指纹