SMART ZONE CAST ANDROID SDK 적용가이드 NIT

Similar documents
SKT SmartZoneCast Agent 개발자 적용가이드_180116

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

오핀 (OFIN) SDK Guide Fintech Mobile SDK Guide - Android V 1.0 OPPFLIB 1

JUNIT 실습및발표

INAPP결제 API 가이드

( )부록

rosaec_workshop_talk

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

PowerPoint 프레젠테이션

어댑터뷰

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

신림프로그래머_클린코드.key

Contents 1 소개 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 간단한 31 플레이어 생성 32 이벤트 리스너 정의 33 Surface 할당 3

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

슬라이드 1

게시판 스팸 실시간 차단 시스템

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

PowerPoint 프레젠테이션

rmi_박준용_final.PDF

Cluster management software

MasoJava4_Dongbin.PDF

PowerPoint Presentation

[96_RE11]LMOs(......).HWP

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - 04-UDP Programming.ppt

슬라이드 1

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - CSharp-10-예외처리

C++ Programming

쉽게 풀어쓴 C 프로그래밊

03장

Google Maps Android API v2

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

쉽게 풀어쓴 C 프로그래밍

Network Programming

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

50_1953.pdf

PowerPoint 프레젠테이션

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft Word - src.doc

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Spring Boot/JDBC JdbcTemplate/CRUD 예제

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

SKT UCC DRM

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

PowerPoint Template

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

adlibr-android_4.x

Install stm32cubemx and st-link utility

슬라이드 1

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Windows 8에서 BioStar 1 설치하기

JAVA PROGRAMMING 실습 08.다형성

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

*통신1802_01-도비라및목차1~11

PowerPoint 프레젠테이션

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

THE TITLE

제11장 프로세스와 쓰레드

1부

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

JMF2_심빈구.PDF

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

UI TASK & KEY EVENT

PowerPoint Presentation

02 C h a p t e r Java

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

PowerPoint Presentation

12-file.key

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

슬라이드 1

13ÀåÃß°¡ºÐ

1 개요 이가이드는 Cocos2d-x 엔진을사용하는안드로이드어플리케이션프로젝트에서아이지에이웍스의서비스를 이용하기위한플러그인가이드입니다. 기능 IGAWorks Cocos2d-x 플러그인이지원하는 IGAW 서비스는아래와같습니다. - 애드브릭스 - 애드팝콘 - 디스플레이애드

Microsoft PowerPoint - 2강

교육자료

슬라이드 1

JAVA PROGRAMMING 실습 09. 예외처리

제8장 자바 GUI 프로그래밍 II

JMF3_심빈구.PDF

09-interface.key

교육2 ? 그림

12. OAuth 2.0 으로사용자관리하기 12.1 들어가며 대부분의회사나조직은직원과고객데이터베이스를가지고있습니다. 쓰리래빗츠를도입하면 일부데이터베이스를이중으로관리해야하는불편함에직면합니다. 이문제를해결하기위해서 쓰리래빗츠는 OAuth 2.0 으로사용자를관리하는기능을제공

adfasdfasfdasfasfadf

02_3 지리산권 스마트폰 기반 3D 지도서비스_과업지시서.hwp

경제통상 내지.PS

°æÁ¦Åë»ó³»Áö.PDF

Transcription:

SMART ZONE CAST ANDROID SDK 적용가이드 NIT

I. 준비 1. Smart Zone Cast Agent( 이하 CBSAgent) 를통해메시지를수신하기위해서는다음과같은 Android 개발환경이필요합니다. OS: Android 4.4(KitKat) 이상 Target SDK Level: 26 이상 Compile SDK Level: 26이상 Java version: JDK 1.7이상 2. 메시지발송을위한회원정보가필요합니다. 개발과정에서의테스트는 https://www.smartzonecast.com 을통해관리자에게문의하시기바랍니다. 3. 이상의준비가완료되었다면다음의단계별안내에따라진행해주십시오. 이문서는 Android studio 3.3.1 버전을기준으로작성되었습니다. 이중 Step 4. 까지는 CBSAgent를탑재하기위한기본적인내용이며, Step 5. 는선택적으로적용할수있는내용입니다. 1 페이지

II. 단계별가이드 STEP 1. jar 파일등록 1. 공식사이트 (https://www.smartzonecast.com) 에서 CBSAgent SDK 를다운로드받습니다. 2. 다운로드받은파일의압축을풀어 CBSAgent_vX.X.X.jar 를확인합니다. 3. 프로젝트폴더의 libs 폴더에 CBSAgent_vX.X.X.jar 를복사합니다. 2 페이지

STEP 2. Manifest 작성 Smart Zone Cast SDK 를적용하기위해서는 AndroidManifest.xml 에 2 개의 Service 와 Receiver 를등록하고, 10 개의 Permission 을적용해야합니다. 1. AndroidManifest.xml 파일에 Service 와 Receiver 를등록합니다. <service android:name="kr.co.nitechs.lib.cbsjobservice android:permission= android.permission.bind_job_service android:enabled="true" /> <service android:name="kr.co.nitechs.lib.cbsservice /> <receiver android:name="kr.co.nitechs.lib.cbsreceiver" android:enabled="true" > <intent-filter> <action android:name="android.provider.telephony.sms_cb_received"/> <action android:name="android.intent.action.boot_completed" /> <action android:name="kr.co.nitechs.lib.action_on_remove_msg"/> <action android:name="kr.co.nitechs.lib.lib.action_on_receive_msg"/> <action android:name= kr.co.nitechs.lib.cb /> <category android:name= android.intent.category.default /> </intent-filter> </receiver> 2. AndroidManifest.xml 파일에 Agent 사용하기위한권한을추가합니다. <uses-permission android:name="android.permission.wake_lock" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.receive_sms" /> <uses-permission android:name="android.permission.receive_boot_completed" /> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="android.permission.read_phone_state" /> <uses-permission android:name="android.permission.read_external_storage"/> <uses-permission android:name="android.permission.bind_job_service"/> 3 페이지

Smart Zone Cast SDK 에서사용되는권한에대한용도는아래표와같습니다. 권한용도 WAKE_LOCK idle 상태를해제하기위해사용합니다. INTERNET 서버와의통신을위해사용합니다. - 수신된메시지의 Cell ID 가지정된 Cell ID 와맞는지검사하기위해사용됩니다. - 광고등의사용자컨텐츠를획득하기위해사용합니다. - Pilot 정보를전달하기위해사용합니다. ACCESS_NETWORK_STATE 네트워크상태체크를위해사용합니다. - 네트워크가사용가능한상태인지확인합니다. ACCESS_COARSE_LOCATION 네트워크기반위치확인를확인하기위해사용합니다. - TAC, Cell ID 정보를가져오기위해사용합니다. RECEIVE_SMS CBS 메세지를수신위해사용합니다. READ_PHONE_STATE 디바이스상태를획득하기위해사용합니다. - OS 버전, 디바이스 ID 등 READ_EXTERNAL_STORAGE 파일로그읽기, 환경설정파일읽기를위해사용합니다. WRITE_EXTERNAL_STORAGE 파일로그쓰기, 환경설정파일쓰기를위해사용합니다. BIND_HOB_SERVICE JobService 를사용하기위해사용합니다. 4 페이지

STEP 3. 서비스및 API 적용 : 리시버등록 CBSAgent 라이브러리는 Smart Zone Cast 에서발송되는메시지를수신하였을때, 기본적으로광고 URL 을포함하여자동으로 Notification Bar( 이미지배너포함 ) 를생성하여노출하는기능을제공하고있습니다. ( 아래예시는 Application 을상속받은클래스에서 setoption Method 를호출하고있습니다. setoption Method 는최초한번설정하신이후다른변경사항이없을경우더이상호출하지않으셔도됩니다.) # 예시코드 1 //------------------------------------------------------------- 변수등록시작 private CBSLocalBroadcastReceiver receiver; // Agent 에서발생시킨이벤트를받기위한리시버 //-------------------------------------------------------------- 변수등록끝 @Override protected void oncreate() { super.oncreate(); app = this; //------------------------------------------------------------- 리시버등록시작 Log.d(TAG, "On create sample app"); try { // 마시멜로우이상버전에서는퍼미션을모두획득했는지체크후 // 모든권한이있을경우에만에이전트를실행해주어야합니다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!checkallpermission()) { setoption(); initreceiver(); catch (Exception e) { Log.e(TAG, "Fail init receiver", e); Log.d(TAG, " 필요한권한을모두획득하지못했습니다."); return; //--------------------------------------------------------------- 리시버등록끝 //** AgentId 필요시요청하여사용합니다. String cbsagentid = CBSAPIs.requestAgentID(this); Log.d(TAG, "[RES_AGENT ID]=="+ cbsagentid); 5 페이지

이옵션들은다음 setoption Method 처럼같이사용될수있습니다. # 예시코드 2 private void setoption() throws Exception { Context context = getapplicationcontext(); // 옵션을설정합니다. Option option = CBSAPIs.getOption(context); Log.d(TAG, "[Get option] " + option.tostring()); // 로그사용여부를설정합니다. // 상용배포시에는 false 로설정해야합니다. option.setuselog(true); // NotificationBar 를사용할클래스를지정한다. // NotificationBar 를사용할경우반드시지정해야합니다. option.setnoticlass(mainactivity.class.getname()); //Push 아이콘설정 : 아이콘을설정하지않으면기본앱아이콘으로노출됩니다. option.setpushsmallicon(context.getresources().getresourcename(r.drawable.icon)); option.setpushlargeicon(context.getresources().getresourcename(r.drawable.icon_large)); // Target Push 를사용할경우사용합니다. // ex> 남자, 10 대의경우아래와같이설정합니다. option.setreceivetarget(sex.man, Age.AGE10); CBSAPIs.setOption(getApplicationContext(), option); Log.d(TAG, "Set option :" + option.tostring()); 6 페이지

STEP 4. 서비스및 API 적용 : 광고 URL 처리 CBSAgent 에서자동으로생성된 Notification Bar 를클릭했을때, 호출되는 Activity 에 requestcontent 를 넣어주시면됩니다. // 캠페인메시지랜딩 URL 요청예제, 토큰아이디를받는부분은무시하십시오. 사용하지않는기능입니다.. Intent intent = getintent(); campaignkey = intent.getstringextra(appalarm.key_key); String getpush = intent.getstringextra("getpush"); String tokenid = ""; if ((campaignkey!= null &&!campaignkey.isempty()) && getpush == null) { 7 페이지 // 컨텐츠요청시캠페인키값을전달해야합니다. // 서버에서키값으로등록된캠페인여부를확인합니다. // 컨텐츠요청결과도 JSON 형태의 String 으로전달됩니다. // getpush 는 null 로고정되어있습니다. String rescontent; try { if (!TextUtils.isEmpty(FirebaseInstanceId.getInstance().getToken())) { tokenid = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "[REQ_CONTENT]" + campaignkey + ", " + tokenid); // tokenid 관련부분과 FirebaseInstanceId 부분은코드를삭제해주시기바랍니다. 사용하지않는기능입니다. 인자값 2 개로직만고정적으로사용해주시길바랍니다 if (!TextUtils.isEmpty(tokenID)) { rescontent = CBSAPIs.requestContent(this, campaignkey, tokenid); Log.d(TAG, "tokenid requestcontent"); else { rescontent = CBSAPIs.requestContent(this, campaignkey); Log.d(TAG, "[RES_CONTENT]" + rescontent); if (!TextUtils.isEmpty(resContent)) { Uri.parse(content)); // 에러코드가 [SUCCESS] 일경우성공이며그이외의경우는실패한경우입니다. JSONObject jsonresponsecontent = new JSONObject(resContent); if ("SUCCESS".equals(jsonResponseContent.getString("ErrCode"))) { // 컨텐츠는 [Content] 키값을가집니다. String content = jsonresponsecontent.getstring("content"); showmessage(" 요청성공 : " + content); showmessage("uri.parse(content) : " + Uri.parse(content)); Intent landingintent = new Intent(Intent.ACTION_VIEW, startactivity(landingintent); else { // 요청이실패할경우에러코드가전달됩니다. showmessage(" 요청실패 : " + jsonresponsecontent.getstring("errcode")); 원한다면 finish() 를사용합니다 //finish(); catch (Exception e) { Log.w(TAG, e); else { Log.d(TAG, "campaignkey is null"); STEP 4 까지적용되면기본적인동작이가능합니다. // 랜딩페이지를가져오지못했을경우해당 Activity 를종료시키길

STEP 5. Customizing: API 를이용한리시버등록 CBSAgent 가기본적으로제공하는 Notification Bar 를사용하지않고어플리케이션내에서직접 Notification 기능을제어하고자할경우, 다음과같이 CBSAgent 에서 Local Broadcasting 을이용하여 App 으로전달해주는 메시지를이용할수있습니다. 1. Application 을상속받은클래스에 Receiver 를변수로등록합니다. 2. Alarm 수신을위해 Receiver 를등록합니다. 3. AgentId 가필요할경우요청하여사용합니다. # 예시코드 1 //----------------------------------------------------------------------- 변수등록시작 private CBSLocalBroadcastReceiver receiver; // Agent 에서발생시킨이벤트를받기위한리시버 //------------------------------------------------------------------------ 변수등록끝 @Override protected void oncreate() { super.oncreate(); app = this; //--------------------------------------------------------------------- 리시버등록시작 Log.d(TAG, "On create sample app"); try { // 마시멜로우이상버전에서는퍼미션을모두획득했는지체크후 // 모든권한이있을경우에만에이전트를실행해주어야합니다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!checkallpermission()) { setoption(); initreceiver(); catch (Exception e) { Log.e(TAG, "Fail init receiver", e); Log.d(TAG, " 필요한권한을모두획득하지못했습니다."); return; //----------------------------------------------------------------------- 리시버등록끝 //** AgentId 필요시요청하여사용합니다. String cbsagentid = CBSAPIs.requestAgentID(this); Log.d(TAG, "[RES_AGENT ID]=="+ cbsagentid); 4. 아래예시와같이리시버클래스를생성하고 Intent 에서 Message 라는키를가지는값을가져와서사용할수 있도록코드를작성합니다. 8 페이지

# 예시코드 2 # 리시버클래스예시 public class CBSLocalBroadcastReceiver extends BroadcastReceiver{ private final String TAG = CBSLocalBroadcastReceiver.class.toString(); private Context context; public CBSLocalBroadcastReceiver(Context context) { this.context = context; /** /** * Agent 에서수신한 CBS 메시지가 APP 으로전달됩니다. * message 는 JSON 형태의 String 값으로되어있습니다. * ex: { Key : a100ewa, Message : CBS 테스트 * @param intent */ @Override public void onreceive(context context, Intent intent) { String action = intent.getaction(); switch (action) { // 캠페인메세지가수신되었을경우에대한처리로직을정의합니다. case APPAlarm.ACTION_ON_RECEIVE_MSG: onreceivecbsmessage(context, intent); break; // 메시지유효기간이만료되어메시지가삭제되었을경우처리를정의합니다. case APPAlarm.ACTION_ON_REMOVE_MSG: onremovecbsmessage(intent); break; * 캠페인메시지수신시처리를구현합니다. * * @param intent */ private void onreceivecbsmessage(context context, Intent intent) { /** // 이하생략 // 이어지는내부코드는생략되어있습니다 * 메시지가삭제되었을경우처리를구현합니다. * * @param intent */ private void onremovecbsmessage(intent intent) { 9 페이지

III. API 및옵션가이드 1. CBSAgent 가제공하는 API 는다음과같습니다. 클래스 설명 CBSAPIs CBSAgent 에서제공하는 API 함수명 반환형 형식 파라미터 설명 설명 requestagentid String Context context Context Agent Id 를반환한다. setoption void Context context Option option Context 옵션 옵션을설정한다. getoption Option Context context Context 설정된옵션을가져온다.. requestcontent String Context context String key Context 캠페인키 광고 URL 을요청한다. requestcontent String Context context String key String tokenid Context 캠페인키 FCM 토큰 ID 광고 URL 을요청하고토큰 ID 를게이트웨이에보내준다. retargetcontent String Context context String key Context 캠페인키 이기능은사용하지않는기능입니다. 10 페이지

2. CBS Agent 에서사용되는옵션은아래와같습니다. 클래스명 설명 Option CBS Agent 에서사용되는옵션정보 속성형식설명 usecampaign boolean 캠페인사용여부 usenotificationbar boolean Notification bar 사용여부 True 로설정할경우반드시 noticlass 를설정해주어야한다. ban Ban 방해금지사용여부 usesound Boolean NotificationBar 를표시할때사운드사용여부 usevibrate Boolean NotificationBar 를표시할때진동사용여부 noticlass String NotificationBar 를사용할클래스 usenotificationbar 가 true 일경우반드시설정해주어야한다. pushsmallicon String 푸시아이콘 (SmallIcon) : 설정하지않으면기본앱아이콘노출. pushlargeicon String 푸시아이콘 (LargeIcon) : 설정하지않으면 Small icon 만노출. uselog Boolean Log 사용여부 개발이나테스트시만사용하고, 상용배포시에는반드시 false 로설정 11 페이지

IV. 메시지정보 onreceive() Intent 정보 BroadcastReceiver 의 OnReceive 에서수신되는메시지의형태는 JSON 형태의메시지입니다. 내용은아래표와 같습니다. 키값내용비고 Key Message 캠페인키 캠페인메시지 imgurl 노티이미지 URL 이미지푸시일경우 # CBS 메시지수신로그예시 {"Message":" 지금클릭하면선물이팡팡 ","Key":"2M0JLL8X9h, imgurl : http://temp.image.jpg 캠페인컨텐츠정보 메시지수신후서버로 Content 요청을사용하게됩니다. Content 요청시사용하는 API 는 requestcontent() 입니다. 파라미터로 onreceive 에서받은 message 에포함된키 ( 캠페인키 ) 를넣어주면됩니다. 요청에따른 결과값은 JSON 형태의문자열로반환됩니다. 반환되는경우는예외가발생한경우입니다. ErrCode 가 SUCCESS 일경우요청성공이며다른문자열이 requestcontent 로수신되는메시지의형태는 JSON 형태의메시지입니다. 내용은아래표와같습니다. 키값내용비고 Key ErrCode 캠페인키 캠페인메시지 오류코드내용은아래 컨텐츠요청시 오류코드정의 표를참고 Content 캠페인에사용하기위한컨텐츠오류발생시빈문자열 ( ) 이반환 # 요청로그예시 07-12 11:09:57.191 19578-19578/kr.co.nitechs.cbssample I/[CBS_AGENT]: [REQ_GW] http://211.188.xxx.xxx/mobilegw/chkadurl.dochkadurl.do : {"campkey":"1b0ksnobxs","appid":"kr.co.nitechs.cbssample","appversion":"2.0.0","osversion":"6. 0.1","cellId":"5143863","displayDate":"16.07.12 11:09","model":"SM-G930S" # 요청에대한응답로그예시 07-12 11:09:57.271 19578-19578/kr.co.nitechs.cbssample I/[CBS_AGENT]: [RES_GW] {"adurl":"http://google.co.kr","imgurl":"","interval":"","message":"","repushcampkey":"","retu rncode":"success","returnmsg":" 성공 ","title":"","todate":"" # requestcontent 에서반환되는값로그예시 07-12 11:09:57.271 19578-19578/kr.co.nitechs.cbssample D/class kr.co.nitechs.mainactivity: [RES_CONTENT]{"Key":"1B0KSnOBxs","Content":"http:\/\/google.co.kr","ErrCode":"SUCCESS" 12 페이지

V. 오류코드 Code 메시지 비고 SUCCESS 성공 UNDEFINED_OPERATION 정의되지않은요청 INVALID_CP 유효하지않은 CP UNAUTHORIZED_CP 승인되지않은 CP INVALID_MSG 유효하지않은메시지 ( 파싱에러 ) DB_OPERATION_ERR 데이터베이스처리오류 INVALID_CELL_ID 승인되지않은 Cell ID UNKNOWN 알수없는오류 UNAUTHORIZED_CAMPAIGN 유효시간이지난캠페인 13 페이지

VI. Debug Log 예시 1. 메시지수신로그 14 페이지

2. 컨텐츠요청및응답로그 15 페이지

VII. Q/A 개발과정에서모든옵션이정상적으로설정되었음에도불구하고메시지가수신되지않을경우다음과같은부분을점검하시기바랍니다. - 테스트단말이발신하는이동통신사의 usim 으로정상개통되어있는가 - 단말이현재 4G/LTE 상태로연결되어있는가 - 필요한권한의획득은정상적으로처리되었는가 - 대상단말의 위치 는사용가능한상태로설정되어있는가 - 재난문자수신설정은정상적으로수신설정되어있는가 - 적용될 App 에서 notification 제어와관련하여이상이없는가 기술지원및문의 : smartzonecast@nitechs.co.kr 16 페이지