일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Scaffold
- 반석천
- InkWell
- Flutter 앱 배포
- listview
- HTTP
- sqlite
- CrossAxisAlignment
- Flutter Tutorial
- ListView.builder
- Hello World
- ListTile
- node.js
- Row
- Row Widget
- flutter
- FutureBuilder
- Snackbar
- MainAxisAlignment
- Column Widget
- WillPopScope
- navigator
- AppBar
- Flutter 예제
- Flutter 강좌
- Image.network
- Networking
- Load Image
- Flutter Example
- Cached Image
- Today
- Total
꿈꾸는 시스템 디자이너
Android 악세사리 디스크립터 생성 및 적용 본문
... AndroidAccessory acc("Google, Inc.", "DemoKit", "DemoKit Arduino Board", "1.0", "http://www.adnroid.com/", "0000000012345678"); ... void loop() { ... if (acc.isConnected()) { //communicate with Android application } else{ //set the accessory to its default state } ... } |
위와 같이 acc를 구현하고 loop()함수내에서 악세사리가 수행해야할 동작을 구현하는 것이다.
다음과 같은 예로 악세사리 코드(펌웨어)를 구현해 보았다.
AndroidAccessory acc("H4U", //제조사 명 "ADK", //제품 모델명 "H4U ADK Testboard", //제품 설명 "1.0", //제품 버전 "http://here4you.tistory.com", //제품 URI "0000000012345678"); //제품 시리얼 번호 |
이 상태에서 장치를 폰에 연결하면 다음과 같은 화면이 나타난다. 위에서 정의한 디스크립션의 내용이 아래에 어떻게 적용되는지 확인 가능하다.
위와 같은 메시지가 나온 이유는 악세사리로부터 읽어온 디스크립터에 해당하는 앱이 아직 설치되지 않았기 때문이다. 이 악세사리와 통신할 앱을 개발하기 위해서는 메니페스트파일과 리소스 XML파일의 정의가 필요하다. 메니페스트파일은 다음과 같이 정의한다.
<?xml version="1.0" encoding="utf-8"?> <uses-sdk <application <!-- 악세사리 API 사용 선언 --> <activity <category android:name="android.intent.category.LAUNCHER" /> <!-- USB 악세사리가 폰에 연결될때 그 이벤트를 받기 위한 인텐트 필터 선언 --> </manifest> |
특히 위에서 정의한 메니페스트 파일의 내용 중에 메타 데이터에 관련된 부분을 보면 xml/accessory_filter를 리소스로 사용하겠다고 정의하였다. 그러므로 res 디렉토리 밑에 xml 디렉토리를 새로 생성하고 그 안에 accessory_filter.xml 파일을 새롭게 생선하고 아래와 같이 정의한다. 아래와 같은 제조사와 모델명, 그리고 버전이 일치하는 악세사리의 디스크립터가 수신되면 해당 악세사리를 본 앱으로 연결해 달라는 것을 정의하는 것이다.
<?xml version="1.0" encoding="utf-8"?> <resources> |
앞서 설명한 메니페스트파일과 xml리소스파일을 이용하여 개발한 apk파일을 폰에 설치한 후 폰을 악세사리와 연결하면 다음과 같이 연관된 앱을 실행할지 여부를 사용자에게 묻는 다이얼로그가 나타난다.
클릭해 주시면 제가 기분이 좋습니다.
'Development > Android' 카테고리의 다른 글
Activity, Thread, Handler 사용법 (0) | 2012.01.17 |
---|---|
엑티비티에서 ACTION_USB_ACCESSORY_ATTACHED 액션 받기에 관한 고찰 (0) | 2012.01.13 |
[번역] USB Accessory for Android(안드로이용 USB 악세사리) (0) | 2012.01.02 |
Arduino ADK와 연결 성공 (3) | 2012.01.02 |
ADK 펌웨어(demokit.pde) 컴파일 중 "WProgram.h"를 찾을 수 없는 에러 (0) | 2011.12.20 |