Slide 1

Slide 1 text

TIJCVZBBQL *OUSPEVDUJPOUP"XBSFOFTT"1* גࣜձࣾ'BCMJD ࠇ઒ɹ༸

Slide 2

Slide 2 text

*OUSPEVDJOH"XBSFOFTT"1* IUUQTXXXZPVUVCFDPNXBUDI WJB4-TW

Slide 3

Slide 3 text

$POUFYU"XBSFOFTTPONPCJMF w ϞόΠϧ୺຤ w ը໘͕খ͘͞ೖྗํ๏͕ݶΒΕ͍ͯΔ w ৗʹܞଳ͍ͯ͠Δ w ଟ਺ͷηϯαʔΛඋ͍͑ͯΔ

Slide 4

Slide 4 text

$POUFYU"XBSFOFTTPONPCJMF w ϞόΠϧ୺຤ w ը໘͕খ͘͞ೖྗํ๏͕ݶΒΕ͍ͯΔ w ৗʹܞଳ͍ͯ͠Δ w ଟ਺ͷηϯαʔΛඋ͍͑ͯΔ ϢʔβʔͷίϯςΩετʹԠͯ͡ ద੾ͳڍಈΛͯ͠΄͍͠

Slide 5

Slide 5 text

$POUFYU"XBSFOFTTͷྫ w ேͷ೔ৗ w ϛʔςΟϯάͷ࣌ؒʹؒʹ߹͏Α͏ʹىচΞϥʔϜ͕ ηοτ͞ΕΔ

Slide 6

Slide 6 text

$POUFYU"XBSFOFTTͷྫ w ேͷ೔ৗ w ϛʔςΟϯάͷ࣌ؒʹؒʹ߹͏Α͏ʹىচΞϥʔϜ͕ ηοτ͞ΕΔ w ςϨϏͰఱؾ༧ใ͕දࣔ͞ΕΔ

Slide 7

Slide 7 text

$POUFYU"XBSFOFTTͷྫ w ேͷ೔ৗ w ϛʔςΟϯάͷ࣌ؒʹؒʹ߹͏Α͏ʹىচΞϥʔϜ͕ ηοτ͞ΕΔ w ςϨϏͰఱؾ༧ใ͕දࣔ͞ΕΔ w ަ௨ঢ়گΛ༧ଌͯ͠ग़ൃ࣌ؒΛ஌ΒͤΔ

Slide 8

Slide 8 text

ͳʹ͕خ͍͔͠ ݸਓͷײ૝Ͱ͢ w Ϣʔβʔͷਓʹਓ͸ΞϓϦΛճར༻ͯ͠཭୤ w Ϧςϯγϣϯͷखஈ͕ओʹϓογϡ௨஌΍ϝʔϧ
 ˠεύϜԽ͠΍͍͢ w Ϣʔβʔɺ࡞Γख૒ํʹͱͬͯϝϦοτ͕͋Δ IUUQKQUFDIDSVODIDPNOFBSMZJOQFPQMFBCBOEPONPCJMFBQQTBGUFSPOMZPOFVTF

Slide 9

Slide 9 text

͍·औΕΔ৘ใ *OUSPEVDJOH"XBSFOFTT"1* IUUQTXXXZPVUVCFDPNXBUDI WJB4-TW ΑΓ

Slide 10

Slide 10 text

"1*ͷ૊Έ߹Θͤͷ೉͠͞ w ྫंΛӡసༀہͷۙ͘ *OUSPEVDJOH"XBSFOFTT"1* IUUQTXXXZPVUVCFDPNXBUDI WJB4-TW ΑΓ

Slide 11

Slide 11 text

"1*ͷ૊Έ߹Θͤ w γεςϜ΁ͷӨڹ w ి஑ফඅྔ w 3". w ಈ࡞͕ॏ͍ˠΞϯΠϯετʔϧ

Slide 12

Slide 12 text

"XBSFOFTT"1* w 6OJpFE4FOTJOH1MBUGPSN *OUSPEVDJOH"XBSFOFTT"1* IUUQTXXXZPVUVCFDPNXBUDI WJB4-TW ΑΓ

Slide 13

Slide 13 text

"XBSFOFTT"1* w 'FODF"1* w $BMMCBDL4UZMF w 4OBQTIPU"1* w 1PMMJOH4UZMF

Slide 14

Slide 14 text

'FODF"1* // Create awareness fence. AwarenessFence startDriving = DetectedActivityFence.starting(DetectedActivityFence.IN_VEICHLE);

Slide 15

Slide 15 text

'FODF"1* // Create awareness fence. AwarenessFence startDriving = DetectedActivityFence.starting(DetectedActivityFence.IN_VEICHLE); FenceUpdateRequest fenceUpdateRequest = new FenceUpdateRequest.Builder() .addFence("startDriving", startDriving, pendingIntent) .build();

Slide 16

Slide 16 text

'FODF"1* // Create awareness fence. AwarenessFence startDriving = DetectedActivityFence.starting(DetectedActivityFence.IN_VEICHLE); FenceUpdateRequest fenceUpdateRequest = new FenceUpdateRequest.Builder() .addFence("startDriving", startDriving, pendingIntent) .build(); Awareness.FenceApi.updateFences(googleApiClient, fenceUpdateRequest);

Slide 17

Slide 17 text

'FODF"1*૊Έ߹Θͤ AwarenessFence areaAroundStore = LocationFence.in(STORE_LATITUDE, STORE_LONGITUDE, 1000 /* radius in meters */, 0L /* dwell time */ );

Slide 18

Slide 18 text

'FODF"1*૊Έ߹Θͤ AwarenessFence areaAroundStore = LocationFence.in(STORE_LATITUDE, STORE_LONGITUDE, 1000 /* radius in meters */, 0L /* dwell time */ ); AwarenessFence duringDriving = DetectedActivityFence.during(DetectedActivityFence.IN_VEICHLE);

Slide 19

Slide 19 text

'FODF"1*૊Έ߹Θͤ AwarenessFence areaAroundStore = LocationFence.in(STORE_LATITUDE, STORE_LONGITUDE, 1000 /* radius in meters */, 0L /* dwell time */ ); AwarenessFence duringDriving = DetectedActivityFence.during(DetectedActivityFence.IN_VEICHLE); AwarenessFence openHours = TimeFence.inDailyInterval(TimeZone.getDefault(), 10 * HOURS_IN_MILLIS, 18 * HOURS_IN_MILLIS);

Slide 20

Slide 20 text

'FODF"1*૊Έ߹Θͤ AwarenessFence areaAroundStore = LocationFence.in(STORE_LATITUDE, STORE_LONGITUDE, 1000 /* radius in meters */, 0L /* dwell time */ ); AwarenessFence duringDriving = DetectedActivityFence.during(DetectedActivityFence.IN_VEICHLE); AwarenessFence openHours = TimeFence.inDailyInterval(TimeZone.getDefault(), 10 * HOURS_IN_MILLIS, 18 * HOURS_IN_MILLIS); AwarenessFence drivingNearStore = AwarenessFence.and(areaAroundStore, duringDriving, openHours);

Slide 21

Slide 21 text

'FODF"1*ෳ਺ొ࿥ // Create FenceUpdateRequest and register FenceUpdateRequest fenceUpdateRequest = new FenceUpdateRequest.Builder() .addFence("startDriving", startDriving, pendingIntent) .addFence("drivingNearStore", drivingNearStore, pendingIntent) .build(); Awareness.FenceApi.updateFences(googleApiClient, fenceUpdateRequest);

Slide 22

Slide 22 text

'FODF"1*3FDFJWFS void onReceive(Context context, Intent intent) { FenceState fenceState = FenceState.extract(intent); if (fenceState.getFenceKey().equals("startDriving")) { if (fenceState.getCurrentState() == FenceState.TRUE) { // show maps apps } } }

Slide 23

Slide 23 text

'FODF"1*3FDFJWFS void onReceive(Context context, Intent intent) { FenceState fenceState = FenceState.extract(intent); if (fenceState.getFenceKey().equals("startDriving")) { if (fenceState.getCurrentState() == FenceState.TRUE) { // show maps apps } } else if (fenceState.getFenceKey().equals("drivingNearStore")) { if (fenceState.getCurrentState() == FenceState.TRUE) { // show reminder } } }

Slide 24

Slide 24 text

4OBQTIPU"1* PlaceResult placeResult = Awareness.SnapshotApi.getPlaces(googleApiClient).await(); WeatherResult weatherResult = Awareness.SnapshotApi.getWeather(googleApiClient).await();

Slide 25

Slide 25 text

1FSNJTTJPO *OUSPEVDJOH"XBSFOFTT"1* IUUQTXXXZPVUVCFDPNXBUDI WJB4-TW ΑΓ

Slide 26

Slide 26 text

1SJWBDZ w ಁ໌ੑͱίϯτϩʔϧ w Կ͕ى͖Δ͔༧ظͰ͖Δ w ๬·ͳ͍ͱ͖͸ΦϑʹͰ͖Δ w ௨஌ w Ϣʔβʔ͸ΦϑʹͰ͖Δ w ௨஌Χʔυ͸ಉ͡΋ͷ

Slide 27

Slide 27 text

ࢀߟ w "XBSFOFTT"1*1SFWJFX"DDFTT
 EFWFMPQFSTHPPHMFDPNBXBSFOFTT w %FFQEJWFJOUPUIF"1*T
 EFWFMPQFSTHPPHMFDPNBXBSFOFTT MPDBUJPO