SlideShare a Scribd company logo
1 of 9
Download to read offline
ANDROIDでGEOFENCEを
使って見る
2014/12/13
自己紹介
• 中谷 克紀
• Twitter @KatsukiNakatani
• 大阪のSIerでサーバ周りのエンジニアをしています(開発者ではないです)
なので仕事で開発をすることはあんまりないです。
• Androidは基本趣味の世界です。
(でも今年初めて仕事でAndroid開発しました!)
• 好きな言語はC# , JAVA ,最近Swiftも少し。
GeoFenceって何?
• GeoFenceとは特定の位置(場所)の周りに網(フェンス)を
張って、その網への出入りを検知してくれる機能です。
エリアに入る エリアから出る
Google IO 2013で発表されました。
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.+’
}
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(); //切断します
}
}
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);
}
これだけです
すごく簡単でしょう!
ちょっとハマったこと
インターネットでググってよく出てくるコードではLocationClientを使用している
コードが多く見られます
SDK5.xxあたりからLocationClientはDeprcatedとなっており
SDK6.5で完全に使えなくなったようです
DeveloperPageもこの通り
実装する場合は、 LocationServices.GeofencingApiを使用した
方法を使ってください
ご静聴ありがとうございました

More Related Content

Similar to AndroidでGeoFenceを使って見る

エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)Hiroyuki Kusu
 
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money FowardNaoki Shimizu
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたYasuharu Seki
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話Yoichiro Sakurai
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behaviortoyship
 
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)Junichi Ito
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!Kazuaki Ueda
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internalsMakoto Kato
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2pandeiro245
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -Toshiyuki Hirata
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会mokelab
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakataVOYAGE GROUP
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
20210720 device meetup #4 about Acty-G3
20210720 device meetup #4 about Acty-G320210720 device meetup #4 about Acty-G3
20210720 device meetup #4 about Acty-G3TomTakeda1
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 

Similar to AndroidでGeoFenceを使って見る (20)

エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
 
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behavior
 
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)
なぜ私はソニックガーデンのプログラマに転身できたのか?(Short ver.)
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
android_on_groovy
android_on_groovyandroid_on_groovy
android_on_groovy
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
20210720 device meetup #4 about Acty-G3
20210720 device meetup #4 about Acty-G320210720 device meetup #4 about Acty-G3
20210720 device meetup #4 about Acty-G3
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 

AndroidでGeoFenceを使って見る