Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ANDROIDでGEOFENCEを
使って見る
2014/12/13
自己紹介
• 中谷 克紀
• Twitter @KatsukiNakatani
• 大阪のSIerでサーバ周りのエンジニアをしています(開発者ではないです)
なので仕事で開発をすることはあんまりないです。
• Androidは基本趣味の世界です...
GeoFenceって何?
• GeoFenceとは特定の位置(場所)の周りに網(フェンス)を
張って、その網への出入りを検知してくれる機能です。
エリアに入る エリアから出る
Google IO 2013で発表されました。
GeoFenceを利用するために
• build.gradleへ依存関係を追加する
dependencies {
compile 'com.google.android.gms:play-services-location:6.5.+’
}
※...
GoogleAPI Clientの初期化・接続
//インスタンスの初期化
public onCreate (){
mApiClient = new GoogleApiClient.Builder(getApplicationContext())...
GeoFenceを登録します
@Override
public void onConnected(Bundle bundle) { //Connectされたら呼ばれます。
ArrayList<Geofence> fenceList = new ...
これだけです
すごく簡単でしょう!
ちょっとハマったこと
インターネットでググってよく出てくるコードではLocationClientを使用している
コードが多く見られます
SDK5.xxあたりからLocationClientはDeprcatedとなっており
SDK6.5で完全に使...
ご静聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

AndroidでGeoFenceを使って見る

9,172 views

Published on

2014/12/13にGDG京都さんでLTした内容です。
AndroidでGeoFensingを利用したことを記載しています

Published in: Engineering
  • Be the first to comment

AndroidでGeoFenceを使って見る

  1. 1. ANDROIDでGEOFENCEを 使って見る 2014/12/13
  2. 2. 自己紹介 • 中谷 克紀 • Twitter @KatsukiNakatani • 大阪のSIerでサーバ周りのエンジニアをしています(開発者ではないです) なので仕事で開発をすることはあんまりないです。 • Androidは基本趣味の世界です。 (でも今年初めて仕事でAndroid開発しました!) • 好きな言語はC# , JAVA ,最近Swiftも少し。
  3. 3. GeoFenceって何? • GeoFenceとは特定の位置(場所)の周りに網(フェンス)を 張って、その網への出入りを検知してくれる機能です。 エリアに入る エリアから出る Google IO 2013で発表されました。
  4. 4. GeoFenceを利用するために • build.gradleへ依存関係を追加する dependencies { compile 'com.google.android.gms:play-services-location:6.5.+’ } ※GooglePlayServiceSDK 6.5より各機能が分割されました。(今まで通り フル機能を利用したい場合は下記の記述としてください) dependencies { compile 'com.google.android.gms:play-services:6.5.+’ }
  5. 5. GoogleAPI Clientの初期化・接続 //インスタンスの初期化 public onCreate (){ mApiClient = new GoogleApiClient.Builder(getApplicationContext()) .addApi(LocationServices.API) //利用するAPIの指定 .addConnectionCallbacks(this) //接続完了リスナ .addOnConnectionFailedListener(this) //接続失敗リスナ .build(); } //インスタンスの接続 public onResume(){ if(mApiClient != null){ mApiClient.connect(); //接続します } } //インスタンスの切断 public onPause(){ if(mApiClient != null){ mApiClient.disconnect(); //切断します } }
  6. 6. GeoFenceを登録します @Override public void onConnected(Bundle bundle) { //Connectされたら呼ばれます。 ArrayList<Geofence> fenceList = new ArrayList<>(); Geofence geofence = new Geofence.Builder() //Builderからフェンスを作成します .setRequestId(“Fence-1”) //フェンスのユニーク名前を設定します .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_EXIT) //入・出を指定します .setCircularRegion(latitude,longuitude,100) //中心となる緯度・経度・半径を指定します .setExpirationDuration(Geofence.NEVER_EXPIRE) //チェックをする期限を指定します .build(); fenceList.add(geofence); //フェンスリストに追加します //イベント発生時に動作するPendingIntentを作成します Intent intent = new Intent(getApplicationContext(), NotificationService.class); PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT); //AddGeofenceで、ApiClientとイベント検知用のフェンス、PendingIntentを渡します。 LocationServices.GeofencingApi.addGeofences(mApiClient, fenceList, pendingIntent); }
  7. 7. これだけです すごく簡単でしょう!
  8. 8. ちょっとハマったこと インターネットでググってよく出てくるコードではLocationClientを使用している コードが多く見られます SDK5.xxあたりからLocationClientはDeprcatedとなっており SDK6.5で完全に使えなくなったようです DeveloperPageもこの通り 実装する場合は、 LocationServices.GeofencingApiを使用した 方法を使ってください
  9. 9. ご静聴ありがとうございました

×