2015-04-20 30 views
8

Uygulamamda Yer seçiciyi kullanamıyorum. API çalıştı sonra sadece bir gün hiçbir açıklama ile durdu. Seçici çok kısa bir süre için ortaya çıkar, sonra basitçe hiçbir istisna olmadan ve günlüklerde hiçbir şey kapatır. OnActivityResult işlevi, requestCode = 1, resultCode = 2 (hata kodu) ve veri olmadan çağrılır. Google'dan örnek kod aynı şeyi yapar. Çalışmak için herşeyi denedim. benzer bir şey yaşayan var mı? Yardım lütfen.Android için Google Rehber API Yeri Seçici çalışmıyor

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.easy.parcelapp." 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="16" 
     android:targetSdkVersion="22" /> 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.RECORD_VIDEO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

    <application 
     android:name=".EasiParcelApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyDEcV-My-Actual-API-Key-goes-here" /> 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.Holo.Light.NoActionBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".RegistrationActivity" 
      android:label="@string/title_activity_register" 
      android:parentActivityName=".MainActivity" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.easiparcel.MainActivity" /> 
     </activity> 
     <activity 
      android:name=".JobListingActivity" 
      android:label="@string/title_activity_listing" > 
     </activity> 
     <activity 
      android:name=".NewJobActivity" 
      android:label="@string/title_activity_new_job" 
      android:parentActivityName=".JobListingActivity" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.easiparcel.JobListingActivity" /> 
     </activity> 
     <activity 
      android:name=".NewJobConfirmation" 
      android:label="@string/title_activity_new_job_confirmation" 
      android:parentActivityName=".NewJobActivity" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.easiparcel.NewJobActivity" /> 
     </activity> 
     <activity 
      android:name=".JobDetails" 
      android:label="@string/title_activity_job_details" 
      android:parentActivityName=".JobListingActivity" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.easiparcel.JobListingActivity" /> 
     </activity> 
    </application> 

</manifest> 

Activity.java

public void HandleSenderAddressPickerClicked(View view) 
{ 
    int PLACE_PICKER_REQUEST = 1; 
    LoadPlacePicker(PLACE_PICKER_REQUEST); 

} 

public void HandleRecieverAddressPickerClicked(View view) 
{ 
    int PLACE_PICKER_REQUEST = 2; 
    LoadPlacePicker(PLACE_PICKER_REQUEST); 

} 

private void LoadPlacePicker(int PlacePickerRequest) 
{ 
    try { 

     PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder(); 
     Intent intent = intentBuilder.build(NewJobActivity.this); 
     // Start the Intent by requesting a result, identified by a request code. 
     startActivityForResult(intent, PlacePickerRequest); 


    } catch (GooglePlayServicesRepairableException e) { 
     GooglePlayServicesUtil 
       .getErrorDialog(e.getConnectionStatusCode(), NewJobActivity.this, 0); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     Toast.makeText(NewJobActivity.this, "Google Play Services is not available.", 
       Toast.LENGTH_LONG) 
       .show(); 
    } 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 
      Place place = PlacePicker.getPlace(data, this); 
      String toastMsg = String.format("Sender Place: %s", place.getName()); 
      Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); 
     } 
    } 

    //Reciever 
    if (requestCode == 2) { 
     if (resultCode == RESULT_OK) { 
      Place place = PlacePicker.getPlace(data, this); 
      String toastMsg = String.format("Receiver Place: %s", place.getName()); 
      Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

cevap

22

Ben kendi soruya cevap bulduk. başkası aynı sorunu ile karşılaşırsa

, Developer Console içinde ve sadece "Yerler API" siz "Android için Rehber API" etkinleştirmek emin olun. "Places API for Android", "API'ler & Auth/APIs" altında görünmeyecektir, çünkü bu, popüler bir API değildir (henüz). API arama kutusunu kullanarak aramak zorunda kalacaksınız.

yerine bu
+0

Bu benim de sorunumu çözdü. Ama garip olan şu ki, bu API'yi etkinleştirdim ve 10 gün önce yer seçicisi çalışıyordu. Ama aniden çalışmayı durdurdu ve bugün geliştirici konsoluma girdiğimde API devre dışı bırakıldı, ancak devre dışı bırakmadım ... Bu garip .. – Andranik

+0

daha önce aynı kotaya sahip miydi? 1000 istek/gün, hatırlamıyorum – Minas

+1

Mükemmel Çalışıyor –

9

:

<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="your_key"/> 

bu ekleyin:

Benim için çalıştı
<meta-data    
    android:name="com.google.android.geo.API_KEY" 
    android:value="your_key" /> 

!!!

+0

Hala çalışmıyor. –

0

Yapı değişkeninizi kontrol edin.

release'dan debug'a geri dönerseniz, genellikle 2 sonuç kodunu da alırsınız.

release için geri dönme işlemi benim için hile yaptı.