android wear

32
ヘヘヘヘヘヘヘヘヘヘヘヘヘヘ Android Wear FiNC Inc Yuki Nanri

Upload: yuki-nanri

Post on 26-Jan-2017

1.354 views

Category:

Mobile


0 download

TRANSCRIPT

Page 1: Android Wear

ヘルスケアデータ収集の簡易化Android Wear

FiNC Inc Yuki Nanri

Page 2: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 3: Android Wear

自己紹介

• 南里勇気 (@neonankiti)• FiNC Android エンジニア

• FiNC の Android アプリ立ち上げから参画• Android のアーキテクチャの検討、実装• UI ・ UX の検討、導入• バイソン

Page 4: Android Wear

FiNC App とは• データ収集→分析→ソリューション→ EC• 行動変容と継続のためのウェルネスバリューチェーン

ウェルネスサーベイ

遺伝子・血液検査 食事指導

サーベイ+各種検査 分析結果レポート パーソナライズソリューション&コンテンツ

専門家のアドバイス SNSヘルスケアの知識・智恵レシピ豆知識理想の食事

腕を大きくふって歩く背伸びを 3回する肩甲骨を 3回す

野菜を毎食食べる1日 1ℓ以上水を飲む朝ヨーグルトを食べる

• 総合結果• 心身の状態• 解決すべき行動• 生活習慣病リスク• お勧めプラン etc.

フィットネスタスク

FiNC STORE

ポイント獲得

• オーダメイド・ パ ーソナル・ サプリメント

• 酵素ドリンク• スムージー etc.

タスク実行や食事投稿で貯まるポイントポイント適用可サーベイ結果

ヘルスケアツーリズム健康食コンテンツ

etc.

食事タスク

スクワットを 10回x3

継続して 10分歩く ライスを半分に控える毎食野菜から食べる

Page 5: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 6: Android Wear

ユーザーの実世界との隔たりを最小限にAndroid Wear って ?

実世界

スマホ

https://www.youtube.com/watch?time_continue=62&v=Bl4Qne-RpcM

スマホを触る時間は実世界から隔絶される時間が長くなる

ウェアラブル

Page 7: Android Wear

Android Wear とヘルスケア

ヘルスケアで最も重要なことは継続させることであり、いい生活習慣、運動習慣を行って健康になるのは当たり前

Page 8: Android Wear

Android Wear とヘルスケア

継続してもらうには、出来るだけ負担を軽くすることが重要

Page 9: Android Wear

Android Wear とヘルスケア

・ Wearable によって データ収集をより効率的にソリューション

分析

データ収集

・現実との隔たりをより 最小限にFiNCAppService

Data collection

Analysis

Solutions

Page 10: Android Wear

今日のゴール全体像

Bluetooth 通信音声、テキストデータ

Notification

Http 通信

FiNC API

FiNC AppWearable

FiNC App Server

Page 11: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 12: Android Wear

FiNC App でデモ

つぶやき投稿 (※ 遊びなので、リリースされてません。 )

Page 13: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 14: Android Wear

I. 環境設定II. Wear App の実装III. FiNC App の実装

実装上の注意点

Page 15: Android Wear

環境設定• OS Ver.4.3 以上で Bluetooh 通信が可能なデバイス

• settings.gradle

• build.gradle(app) に以下を追記

• build.gradle(wear app) に以下を追記

dependencies { wearApp project(':fit') compile 'com.google.android.support:wearable:1.3.0' compile 'com.google.android.gms:play-services-wearable:8.4.0'}

apply plugin: 'com.android.application'dependencies { compile 'com.google.android.support:wearable:1.3.0' compile 'com.google.android.gms:play-services-wearable:8.4.0'}

include ':fit'

Page 16: Android Wear

環境設定

Google API Client の利用して Bluetooth 通信を可能に

Google API Client インスタンスmGoogleApiClient = new GoogleApiClient .Builder(this) .addConnectionCallbacks(this) .addApi(Wearable.API) .build();mGoogleApiClient.connect();

Page 17: Android Wear

Wear App

I. 音声 Input リクエスト処理II. 音声 Input レスポンス処理III. デバイス ( スマホ ) に Bluetooth 通信

Page 18: Android Wear

Wear App

I. Intent を投げる

private static final int SPEECH_REQUEST_CODE = 0;

// Create an intent that can start the Speech Recognizer activityprivate void displaySpeechRecognizer() { Intent intent = new Intent( RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // Start the activity, the intent will be // populated with the speech text startActivityForResult(intent, SPEECH_REQUEST_CODE);}

Page 19: Android Wear

Wear App

II. コールバックで処理データを加工@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {

List<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); String spokenText = results.get(0); // Do something with spokenText sendMessage(" つぶやき ", spokenText);

} super.onActivityResult(requestCode, resultCode, data);}

Page 20: Android Wear

Wear App

Ⅲ. スマホデバイス側にデータ送信1. Device を探索

2. 探索結果のコールバックをセット

// Instance for looking for smart phone device.PendingResult<NodeApi.GetConnectedNodesResult> nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient);

// Sets callback for device.nodes.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() { @Override public void onResult(NodeApi.GetConnectedNodesResult result) { // write what you want to do for your host app. }});

Page 21: Android Wear

Wear App

Ⅲ. スマホデバイス側にデータ送信3. 送るデータの作成

for (Node node : result.getNodes()) {JSONObject jsonObject = new JSONObject();try { jsonObject.put("title", title); jsonObject.put("message", message);} catch (JSONException e) { e.printStackTrace();}

Page 22: Android Wear

Wear App

Ⅲ. スマホデバイス側にデータ送信4. スマホデバイスに送信

final byte[] bs = (jsonObject.toString()).getBytes();PendingResult<MessageApi.SendMessageResult> messageResult = Wearable.MessageApi.sendMessage( mGoogleApiClient, node.getId(), "/messagesample", bs);

Page 23: Android Wear

Wear App

Ⅲ. スマホデバイス側にデータ送信5. コールバックのセット

messageResult.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() { @Override public void onResult( MessageApi.SendMessageResult sendMessageResult) { Status status = sendMessageResult.getStatus(); Log.d("TAG", "Status: " + status.toString()); }});

Page 24: Android Wear

FiNC App

I. Google API Client に Listener の設定II. CallBack で処理

Page 25: Android Wear

FiNC App

I. Google API Client に Listener の設定

Wearable.MessageApi.addListener(mGoogleApiClient, this);

Page 26: Android Wear

FiNC App

Ⅱ. CallBack で処理@Overridepublic void onMessageReceived(MessageEvent messageEvent) { // already written in wearable app if (messageEvent.getPath().equals("/messagesample")) { final String messagePayload = new String(messageEvent.getData()); JSONObject jsonObject = null; try { jsonObject = new JSONObject(messagePayload); } catch (JSONException e) { e.printStackTrace(); } Log.d("TAG + message", messagePayload); try { // implement API execution sendNotificationToOpenCustomActivity(getBaseContext(), jsonObject); } catch (JSONException e) { e.printStackTrace(); } }}

Page 27: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 28: Android Wear

実装はわかったけどWearable App って実用的?

Page 29: Android Wear

• つぶやきだけでなくより多くのデータを自動収集• 体重投稿• 睡眠投稿• 食事投稿

• 他の Wearable, Google Fit との連携• Beacon を利用した健康促進

今後の展開

Page 30: Android Wear

自己紹介Android Wearデモ実装の注意点今後の展開まとめ

~table of contents~

Page 31: Android Wear

• Android Wear が提供するのは、ユーザーの欲しいタイミングで、即座に情報を提供する体験。• 多様なセンサーで情報を収集できるためヘルスケアとの相性は良い。• 開発コストが低く、すぐに実装できる。• ただ具体的にサービスの設計が出来ていないとデータを貯めるだけの無駄な機能になる。

まとめ

Page 32: Android Wear

ありがとうございました!