2015-04-05 42 views
6

我重复使用了Android团队的Google PlaceAutocomplete示例项目中的代码。PlaceAutocomplete得到未知状态代码:9000

我为每个项目使用了不同的键(也在谷歌控制台中为Android启用Google Places)。

当我构建并运行示例项目时,它工作正常。然而,当我从我的应用程序运行它,有时它正在工作,其他时间我得到未知的状态代码: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,I(开始暗示的地方),N,G。所以当我到达第四封信时,偶尔会有这个错误。

所以这是唯一不同的部分仅仅是int值的clientId,我传递给mgoogleApiClient.enableAutoManage()

示例项目使用0,而我的项目中使用9993938838939(随机数)。 - 我不确定我应该在这里放置什么样的值(它拒绝已被其他应用使用的数字)

除此之外,代码没有区别(只有我将Googleclient变量放在Activity上,但实际上在片段上自动完成实施)

请帮忙。

+0

我得到这个在控制台上:[BR] '一月4日至8日:15:39.331 16148-10791 /? W/Places:f.a:633:gLocReplyElement不成功状态:1' '04-08 01:15:39.332 16148-10791 /? W/Places:fa:660:gPlaceQueryResult不成功responseCode:26' '04-08 01:15:39.339 10558-11608/com.travelapp.karet W/karet:获取自动填充预测API调用出错:状态{statusCode = unknown状态代码:9000,分辨率=空}' – 2015-04-07 18:16:03

+0

您是否启用了Android的位置API或一般的?我遇到了这个问题,因为我启用了错误的API。 – 2015-04-11 01:53:57

+0

已启用它 – 2015-04-14 17:19:54

回答

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

+0

已经添加了这一点。 我仍然得到错误代码 – 2015-04-18 13:15:47

+0

这个工程,但缺乏重要的说明。您应该只在清单文件中使用一个API KEY。 – 2015-09-15 18:50:33

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。然后选择您正在处理的项目。在左侧,点击“API & auth”链接,在下面点击“Credentials”链接。之后,点击“编辑允许的Android应用程序”按钮。现在您可以输入演示应用程序的应用程序包,例如XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;com.example.google.playservices.placecomplete在文本框中。

注: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX =您的SHA1证书指纹

+0

不能说OP,但我已验证所有这些事情,我仍然看到错误。 – dpassage 2015-04-17 17:52:06

+1

@dpassage步骤3非常重要,因为这是此错误的唯一原因,您必须添加机器的SHA指纹,从中编译和运行示例以及清单文件中定义的应用程序包! – 2015-04-17 18:16:20

+1

@dpassage另外请确保你已经启用的地方api :) – 2015-04-17 18:24:46

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.