俺がライダーだ
@kassy_kz
2013/9/14 名古屋 つ部 勉強会 LT
2013年9月14日土曜日
Effective Android
• 私も少し
書かせてもらった
• β版発売中
(宣伝)
http://bit.ly/16WlWeZ
2013年9月14日土曜日
自己紹介
• 名前: かっしー
    (@kassy_kz)
    (神奈川県)
• 特徴: 健全
    とても健全
• 趣味: 自転車
    ライダーのサーヴァント(社畜)
2013年9月14日土曜日
自転車たのしい
✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
2013年9月14日土曜日
重度の迷子クラスタです
ところが. . .
2013年9月14日土曜日
スマートフォンをマウント
これで迷子の心配ナシ!
2013年9月14日土曜日
ところが
グローブはめると操作できない
2013年9月14日土曜日
新開発
NFCウィザードグローブ
NFCタグ
NFCタグ
NFCタグ
NFCタグ NFCタグ
NFCタグ
NFCタグ
NFCタグ
NFCタグ NFCタグ
全指先にNFCタグを貼り付け
2013年9月14日土曜日
10本のNFCタグを駆使して
タッチパネルを使わずに
スマホを操作する
これぞ お触り禁止 な端末操作
け ん ぜ ん
2013年9月14日土曜日
NFC操作で できること 1
• 任意のアプリの起動
• AndroidApplicationRecordという種類のタグを
書き込んでおけば、OSがアプリを起動してくれる
• どのアプリでも起動可能
アプリ起動
2013年9月14日土曜日
NFC操作で できること 2
• URIを飛ばす→アプリが受け取る
• 任意のURLにジャンプなどが可能
• AndroidManifestにURIを受け取る定義が必要
URI取得
2013年9月14日土曜日
ウィザードグローブ対応
地図アプリ作った
• Google Maps APIV2を使用
• NFCをかざすと
 - 現在地へ移動
- スクロール
- 拡大縮小
が可能
2013年9月14日土曜日
ところが . . .
Maps API V2ではルート案内ができない. . .
川崎駅どこ?
2013年9月14日土曜日
NFCだけで
Google Maps アプリを操作したい
2013年9月14日土曜日
NFCでタッチパネルを操作する
秘策
2013年9月14日土曜日
基本構成
アプリ
Android OS
一般アプリ
(GoogleMaps)
デバイスドライバ
通常タッチイベント 偽タッチイベント NFC
特権アプリ
(要Root)
今回開発
2013年9月14日土曜日
コード
<uses-permission android:name="android.permission.INJECT_EVENTS"/>
AndroidManifest.xml
とても危険なパーミッションです。
このパーミッションを宣言した...
コード
/**
* 単純なタップを再現するタスク
**/
public static class SimpleTapEventSender
extends AsyncTask<Integer, Integer, Integer> {
@Over...
コード
/**
* ムーブイベントを再現するタスク
**/
public static class SlideEventSender
extends AsyncTask<Integer, Integer, Integer> {
@Overrid...
NFCウィザードグローブ
動作デモ
2013年9月14日土曜日
このNFCウィザードグローブで
俺は最強の健全ライダーになる
2013年9月14日土曜日
ところが
こんな商品が・・・
http://bit.ly/tXgOJX
2013年9月14日土曜日
あれ...
2013年9月14日土曜日
僕の苦労は.... 存在意義は...
2013年9月14日土曜日
絶望が俺のゴールだ
2013年9月14日土曜日
申し訳ありませんでした
発表は以上です
ご静聴ありがとうございました
2013年9月14日土曜日
Upcoming SlideShare
Loading in...5
×

俺がライダーだ

1,465

Published on

名古屋 つ部 勉強会 2013年9月 の発表資料です

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,465
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

俺がライダーだ

  1. 1. 俺がライダーだ @kassy_kz 2013/9/14 名古屋 つ部 勉強会 LT 2013年9月14日土曜日
  2. 2. Effective Android • 私も少し 書かせてもらった • β版発売中 (宣伝) http://bit.ly/16WlWeZ 2013年9月14日土曜日
  3. 3. 自己紹介 • 名前: かっしー     (@kassy_kz)     (神奈川県) • 特徴: 健全     とても健全 • 趣味: 自転車     ライダーのサーヴァント(社畜) 2013年9月14日土曜日
  4. 4. 自転車たのしい ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ 2013年9月14日土曜日
  5. 5. 重度の迷子クラスタです ところが. . . 2013年9月14日土曜日
  6. 6. スマートフォンをマウント これで迷子の心配ナシ! 2013年9月14日土曜日
  7. 7. ところが グローブはめると操作できない 2013年9月14日土曜日
  8. 8. 新開発 NFCウィザードグローブ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ NFCタグ 全指先にNFCタグを貼り付け 2013年9月14日土曜日
  9. 9. 10本のNFCタグを駆使して タッチパネルを使わずに スマホを操作する これぞ お触り禁止 な端末操作 け ん ぜ ん 2013年9月14日土曜日
  10. 10. NFC操作で できること 1 • 任意のアプリの起動 • AndroidApplicationRecordという種類のタグを 書き込んでおけば、OSがアプリを起動してくれる • どのアプリでも起動可能 アプリ起動 2013年9月14日土曜日
  11. 11. NFC操作で できること 2 • URIを飛ばす→アプリが受け取る • 任意のURLにジャンプなどが可能 • AndroidManifestにURIを受け取る定義が必要 URI取得 2013年9月14日土曜日
  12. 12. ウィザードグローブ対応 地図アプリ作った • Google Maps APIV2を使用 • NFCをかざすと  - 現在地へ移動 - スクロール - 拡大縮小 が可能 2013年9月14日土曜日
  13. 13. ところが . . . Maps API V2ではルート案内ができない. . . 川崎駅どこ? 2013年9月14日土曜日
  14. 14. NFCだけで Google Maps アプリを操作したい 2013年9月14日土曜日
  15. 15. NFCでタッチパネルを操作する 秘策 2013年9月14日土曜日
  16. 16. 基本構成 アプリ Android OS 一般アプリ (GoogleMaps) デバイスドライバ 通常タッチイベント 偽タッチイベント NFC 特権アプリ (要Root) 今回開発 2013年9月14日土曜日
  17. 17. コード <uses-permission android:name="android.permission.INJECT_EVENTS"/> AndroidManifest.xml とても危険なパーミッションです。 このパーミッションを宣言しただけで AndroidSDKはビルドを拒んできます 2013年9月14日土曜日
  18. 18. コード /** * 単純なタップを再現するタスク **/ public static class SimpleTapEventSender extends AsyncTask<Integer, Integer, Integer> { @Override protected Integer doInBackground(Integer... params) { Log.i(TAG, "pushsync aaa"); if(params.length < 2 ) return null; Instrumentation ist = new Instrumentation(); MotionEvent event; event = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, params[0], params[1], 0); ist.sendPointerSync(event); wait_msec(300); event = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, params[0], params[1], 0); ist.sendPointerSync(event); return null; } } 単純なタップイベントを発生させるコード 2013年9月14日土曜日
  19. 19. コード /** * ムーブイベントを再現するタスク **/ public static class SlideEventSender extends AsyncTask<Integer, Integer, Integer> { @Override protected Integer doInBackground(Integer... params) { if(params.length < 4 ) return null; int count = 20; // Down Instrumentation ist = new Instrumentation(); MotionEvent event = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, params[0], params[1], 0); ist.sendPointerSync(event); wait_msec(300); // Move for(int i=0; i<count; i++) { MotionEvent event21 = MotionEvent.obtain(SystemClock.uptimeMillis (), SystemClock.uptimeMillis(), MotionEvent.ACTION_MOVE, ((count - i) * params[0] + i * params[2]) / count, ((count - i) * params[1] + i * params[3]) / count, 0); ist.sendPointerSync(event21); wait_msec(100); } // Up MotionEvent event3 = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), スライドイベントを発生させるコード http://bit.ly/18k7CUp 2013年9月14日土曜日
  20. 20. NFCウィザードグローブ 動作デモ 2013年9月14日土曜日
  21. 21. このNFCウィザードグローブで 俺は最強の健全ライダーになる 2013年9月14日土曜日
  22. 22. ところが こんな商品が・・・ http://bit.ly/tXgOJX 2013年9月14日土曜日
  23. 23. あれ... 2013年9月14日土曜日
  24. 24. 僕の苦労は.... 存在意義は... 2013年9月14日土曜日
  25. 25. 絶望が俺のゴールだ 2013年9月14日土曜日
  26. 26. 申し訳ありませんでした 発表は以上です ご静聴ありがとうございました 2013年9月14日土曜日
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×