2014-02-06 92 views
5

我正在尋找代碼樣本上,當用戶設備接近預先定義的位置如何獲得一個事件。我在這裏看到如何讓這裏使用谷歌Places API的位置自動完成列表:基於Android位置的提醒/活動?

https://developers.google.com/places/training/autocomplete-android

使用基於上面的位置,怎麼可以在我的應用程序時通知用戶接近該位置是否選擇。如果我創建一個不斷民調位置,然後將日常使用的谷歌的地方API將大大超過所分配的量即服務(你只能得到1,000個請求/天)......

+0

邁克你好,你有什麼解決方法嗎? –

回答

3

使用谷歌播放服務,您需要成立了谷歌API客戶端第一

private void setUpApi() { 
     mGoogleApiClient = new GoogleApiClient.Builder(getActivity()) 
       .addApi(LocationServices.API) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 
     mGoogleApiClient.connect(); 
    } 

當客戶端連接,你可以設置你的提醒,使用您已經知道座標:

@Override 
    public void onConnected(Bundle connectionHint) { 
     Log.d(TAG, "connected!!"); 
     Geofence cinemaFence = new Geofence.Builder() 
        .setRequestId(id) // some id for you 
        .setExpirationDuration(Geofence.NEVER_EXPIRE) 
        .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER) 
        .setCircularRegion(mLatitude, mLongtitude, mRadius) 
        .build(); 

      GeofencingRequest request = new GeofencingRequest.Builder() 
        .addGeofence(cinemaFence) 
        .setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER) 
        .build(); 

      // Now we create an intent that will be fired when the user enters the region 
      Intent intent = new Intent(mContext, UserTransitionIntentService.class); 
      intent.putExtra(UserTransitionIntentService.EXTRA_FEATURES, getFeaturesFlag()); 
      PendingIntent pi = PendingIntent.getService(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
      LocationServices.GeofencingApi.addGeofences(mGoogleApiClient, request, pi); 
    } 

整個項目可以在這裏找到:https://github.com/alexstyl/Location-Reminder

+0

偉大的答案!謝謝! – DeeJay