Version 2.3 서울특별시중구을지로 2 가 11 번지 SK T-Tower
목차 1. ARM 적용절차설명... 3 2. ARM Plugin 적용절차... 4 STEP 1. 프로젝트생성준비... 5 STEP 2. 이클립스프로젝트생성... 6 STEP 3. ARM Plugin(AIDL) 파일설치... 7 STEP 4. ARM Plugin(AIDL) 연동... 8 3. Appendix - ARM Plugin(AIDL) API 설명... 11 2.1 ARM Plugin(AIDL) API ver. 1.0...11 2.2 ARM Service 에러코드...12 SKT 2
1. ARM 적용절차설명 ARM 을 Application 에적용하여 T-store 에등록하는절차는다음 [ 그림 1] 과같으며자세한설명은 T- store 개발자센터홈페이지를기반으로다음과같이설명합니다. [ 그림 1] ARM 적용절차 1 ARM Library 받기 ARM 솔루션적용을위해필요한 Library 를다운로드 > Application DRM 메뉴에서 Android 용 ARM Library 다운로드받으세요. 2 Application ID 발급받기싞규발급 : 상품등록 / 관리 > 상품등록 > 싞규등록에서상품명및플랫폼선택후발급가능합니다. 기발급된 Application ID 확인 : 상품등록 / 관리 > 상품관리 > 상품상세페이지 : 기본정보에서확인하실수있습니다. 3 ARM Library (ARM Plugin) 적용 Application 개발소스내에 ARM Library (ARM Plugin) 를적용하세요. 4 Developer License 발급검증툴 (Validation Tool) 을통한 ARM 동작테스트를위해서는 Application 별로검증툴사용을위한 Developer License 발급이필요합니다. Developer License 발급을받기위해서는상품개발정보에서발급받으실수있습니다. 5 Validation Tool ARM 동작테스트를개발자가자체적으로수행할수있는프로그램을다운로드받으세요. Validation Tool 은다운로드 > Application DRM 메뉴에서다운로드받으세요. 6 Self 검증검증툴 (Validation Tool) 을통한자체테스트를진행하세요. 7 Application 등록 ARM Self 검증이완료된 Application 을등록하세요. SKT 3
2. ARM Plugin 적용절차설명 안드로이드 Application 구현에 ARM Plugin(AIDL) 적용절차는아래와같습니다. [ 그림 2] ARM Plugin(AIDL) 적용절차 SKT 4
STEP 1. 프로젝트생성준비 Android Application 을개발하기위해다음과같은항목들을준비하시면됩니다. 모든준비항목들에대한도움은 T-store 개발자센터홈페이지를참조하시면자세한설명을확인하실수 있습니다. 1. 준비해야할사항중중요한것은 AID (Application ID) 를발급받으시는부분입니다. ID 를발급받는절차는 1.ARM 적용절차설명의 2번항목에설명되어있습니다. 발급받은 ID 는 2-STEP 4 ARM SERVICE 연동 셈플코드를보면서홗용하셔야됩니다. 2. 안드로이드 SDK 는 1.6 버젼이상을홗용하셔야하며 Android 개발자사이트 (http://developer.android.com) 에서다운받으실수있습니다. 3. ARM PLUGIN (AIDL 컴포넌트 ) 와사용설명서는 T-Store 개발자센터를통해다운받으실수있습니다. 4. ARM PLUGIN 적용을검증할수있는검증용툴 (Verification tool) 은 T-store 개발자센터를통해다운받으실수있습니다. 위와같이 4 가지항목에대한프로젝트생성준비를마치시고다음장 (STEP 2) 로진행하시면됩니다. SKT 5
STEP 2. 이클립스프로젝트생성 1. Eclipse 에서 Android Project 를생성합니다. (Android SDK 1.6 & later 버전이상에서생성해야합니다.) [ 그림 3] Android Project 생성화면 SKT 6
STEP 3. ARM Plugin(AIDL) 파일설치 ARM Plugin(AIDL) 은생성된프로젝트내의다음과같은순서로설치하여야합니다 1. 이클립스프로젝트디렉토리에서 /SRC 밑에패키지폴더를생성한다. ( 패키지폴더 : com.skt.arm.aidl) 2. ( 다운받은 ) ARM Plugin(AIDL) 파일을패키지폴더밑에복사한다. ( 파일명 : IArmService.aidl) 3. 2 번을수행하자마자 /gen/com.skt.arm.aidl 폴더가자동생성되었는지확인한다. (com.skt.arm.aidl/ 폴더밑에 IArmService.java 파일이존재하는지확인한다 ) AIDL 설치경로 자동생성 [ 그림 3] Plugin(AIDL) 설치후파일이자동생성된화면 SKT 7
STEP 4. ARM Plugin(AIDL) 연동 Application 은 ARM Plugin(AIDL) 을통하여 ARM Service 와통싞하도록됩니다. 개발자는 ARM Plugin(AIDL) 을이용하여개발하는 APPLICATION 을아래와같은순서로호출하여 ARM Service 와통싞할수있도록구현해야합니다. Application 의 Activity 에서 ARM PLUGIN 을연동하는방식은다음과같은 4 가지 STEP 을준수하여개발합니다. STEP1. bindservice Android API 를호출하여 PLUGIN 연동을시작한다 STEP2. onserivceconnected Android API 를호출하여결과를확인한다 STEP3. executearm PLUGIN API 를호출하며결과를처리한다 STEP4. unbindservice Android API 를호출하여 PLUGIN 연동을종료한다 [ 그림 5] ARM Plugin(AIDL) 연동화면 SKT 8
아래 Sample Code 를참조하여 Activity 를작성합니다. import android.app.activity; import android.os.ibinder; import android.content.componentname; import android.content.serviceconnection; import android.content.intent; import com.skt.arm.aidl.*; public class SampleApp extends Activity { private IArmService private ArmServiceConnection service; armcon; //--------------------------------------------------------------------------------------- // 1-(2) Application ID 발급받기절차를통해실발급된 AID 로변경하십시오. private String AID = "OA23456789"; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); runarmservice(); // ARM Check 프로세스진행 private boolean runarmservice ( ) { try{ if(armcon == null){ // bindservice 진행 armcon = new ArmServiceConnection(); bindservice(new Intent(IArmService.class.getName()), ----(1) armcon, Context.BIND_AUTO_CREATE); return true; catch(exception e){ releaseservice(); return false; private void releaseservice ( ) { if(armcon!= null){ // unbindservice 진행 unbindservice(armcon); ----(4) SKT 9
armcon = null; class ArmServiceConnection implements ServiceConnection { public void onserviceconnected (ComponentName name, IBinder boundservice) ----(2) { // bindservice 후 onserviceconnected() 이벤트발생 if(service == null) service = IArmService.Stub.asInterface((IBinder) boundservice); try{ // ARM Service로 AID값전송 int res = service.executearm(aid); ----(3) switch(res){ case 1: // 성공시 // Application 정상구동 break; default: // 실패시 // 에러메시지출력후 Application 종료 // 에러코드표참조 (Appendix) break; catch(exception e){ releaseservice(); return; // ARM Service와의연결해제 releaseservice(); public void onservicedisconnected(componentname name) { service = null; SKT 10
3. Appendix - ARM Plugin(AIDL) API 설명 2.1 ARM Plugin(AIDL) API ver. 1.0 ARM Service 호출메소드 클래스명 IArmService int executearm(string AID); 입력파라미터 String AID Application ID(10 자리 ) 리턴파라미터 int ARM Service 처리결과코드 설명 해당 AID 의라이선스체크를위해 ARM Service 와 IPC 통싞을하기위한인터페이스입 니다. SKT 11
2.2 ARM Service 에러코드 ARM SERVICE 에서반홖되는반홖값은아래표와같습니다. 에러상황일경우 권장메시지 를팝업 (POP-UP) 시켜주세요. 결과 Return 값 상황설명 권장메시지 권장 Activity 정상 1 정상라이선스발급이된경우 메시지노출불필요, 성공확인후바로 App. 실행 0xF0000004 서버와정상적으로연결되지않아라이선스 일시적인장애로라이선스발급에실패하였습니다. Popup 노출후프로그램종료 요청이되지않은경우 잠시후에다시시도해주십시요.(04) 0xF0000008 일시적인장애로라이선스발급이실패한경우 일시적인장애로라이선스발급에실패하였습니다. 잠시후에다시시도해주십시요.(08) Popup 노출후프로그램종료 0xF000000E 일시적인장애로라이선스발급에 Popup 노출후잘못된통싞데이터가실패하였습니다. 프로그램종료전송된경우잠시후에다시시도해주십시요.(0E) 0xF0000009 상품구매내역확인에실패하였습니다. Popup 노출후 APP 의 구매이력 자세한사항은고객센터로문의프로그램종료확인에실패했을경우바랍니다.(09) 등록되지않은사용자가 Tstore 미가입된단말입니다. Popup 노출후 0xF000000A 에러라이선스를요청한경우가입후이용을해주시기바랍니다.(0A) 프로그램종료 코드일시적인장애로라이선스발급에 Popup 노출후통싞시간이허용시간을 0xF000000C 실패하였습니다. 프로그램종료초과한경우잠시후에다시시도해주십시요.(0C) 0xF000000D 어플리케이션의라이선스정보확인이 Popup 노출후등록되지않은 APP 에불가능합니다. 프로그램종료대해라이선스를자세한사항은고객센터로문의요청했을경우바랍니다.(0D) 0xF0000011 단말전화번호 (MDN) 정보를확인할수없을경우 핸드폰번호를확인할수없습니다. USIM 장착여부확인및 USIM 잠금이된경우해제를해주시기바랍니다. (11) Popup 노출후프로그램종료 어플리케이션의정보확인이 Popup 노출후 0xF0000012 APPID 가지정된규격이불가능합니다. 프로그램종료아닐경우자세한사항은고객센터로문의 바랍니다.(12) SKT 12
0xF0000013 통싞네트워크 (3G, WIFI) 를사용할수없는경우 핸드폰에서데이타통싞 (3G, WIFI) 이되고있지않습니다. 핸드폰의데이터통싞설정부분을확인후재실행을해주십시요. (13) Popup 노출후프로그램종료 Tstore 전용프로그램이설치되어있지 Popup 노출후 0xF0000014 ARM CORE SO 연동이실패한경우 않습니다. Tstore 전용프로그램을설치하싞후재 프로그램종료 실행을해주십시요. (14) SKT 13