개발자 포럼

필독사항1 :  
필독사항2 :  

소스: android.zip


안드로이드폰에서 쿨에스엠에스 문자 보내는 방법을 간단하게 알아보겠습니다.


먼저 CoolSms라는 프로젝트명으로 프로젝트를 생성합니다.


    android create project \
       
--package com.diensoft.CoolSms \
       
--activity CoolSms \
       
--target 6 \
       
--path CoolSms


생성된 프로젝트에서 res/layout/main.xml 파일을 열어서 Send 버턴을 추가해 줍니다.

- main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, CoolSms"
/>
    <Button android:id="@+id/send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
/>
</LinearLayout>


CTM-Java 모듈의 SMS.java 파일을 src/com/diensoft/CoolSms 디렉토리에 복사해 넣고 다음과 같이 패키지를 지정해주는 코드를 추가합니다.
- SMS.java
/**
* vi:set ts=4 sw=4 expandtab fileencoding=utf8:
* @version 2.3
* @author wiley
* @copyright (C) 2008-2010 D&SOFT
* @link http://open.coolsms.co.kr
**/
package com.diensoft.CoolSms;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.net.Socket;
import java.net.InetSocketAddress;
..... 이하 생략 .....



src/com/diensoft/CoolSms/CoolSms.java 파일을 열어서 다음과 같이 연두색 배경의 코드들을 추가해 줍니다. 파일 인코딩은 한글입력을 위해서 UTF-8 으로 저장합니다.


- CoolSms.java

package com.diensoft.CoolSms;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
public class CoolSms extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// set button listener
final Button btnSend = (Button)findViewById(R.id.send);
btnSend.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SMS sms = new SMS();
sms.appversion("Android/1.0");
sms.charset("utf8");
sms.setuser("coolsms-id", "coolsms-password");

SmsMessagePdu pdu = new SmsMessagePdu();
pdu.type = "SMS";
pdu.destinationAddress = "01012345678";
pdu.scAddress = "0200000000";
pdu.text = "문자내용을 80바이트 내로 입력하세요.";
sms.add(pdu);

try {
sms.connect();
sms.send();
sms.disconnect();
} catch (IOException e) {
System.out.println(e.toString());
}
sms.printr();
sms.emptyall();
}
});
}
}


이제 CoolSms 프로젝트 홈디렉토리로 와서 ant debug 명령으로 빌드해 봅니다. 그러면 개발환경에 따라서 UTF-8인코딩으로 입력된 한글로 인해서 아래와 같은 컴파일 오류가 발생할 수 있습니다.
    [javac]                                                                   ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";
[javac] ^
[javac] C:\Projects\android\CoolSms\src\com\diensoft\CoolSms\CoolSms.java:31: warning: unmappable character for encoding ascii
[javac] pdu.text = "??????????????? 80????????? ?????? ???????????????.";


이런 경우 android-sdk가 설치된 디렉토리에서 tools/ant/ant_rules_r3.xml 파일(윈도의 경우 C:\android-sdk-windows\tools\ant\ant_rules_r3.xml)을 열어서 아래와 같이 인코딩을 ascii 에서 utf8 으로 고쳐준 후 다시 빌드합니다.


                .... 생략 ....

                <javac encoding="utf8" target="1.5" debug="true" extdirs=""
                        destdir="${out.classes.absolute.dir}"
                        bootclasspathref="android.target.classpath"
                        verbose="${verbose}"
                        classpath="${extensible.classpath}"
                        classpathref="android.libraries.jars">
                    <src path="${source.absolute.dir}" />
                    <src path="${gen.absolute.dir}" />
                    <src refid="android.libraries.src" />
                    <classpath>
                        <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
                        <fileset dir="${extensible.libs.classpath}" includes="*.jar" />
                    </classpath>
                </javac>
                .... 생략 ....


빌드가 성공적으로 끝나면 bin 디렉토리로 이동하여 adb를 사용하여 avd(Android Virtual Device)에 업로드하여 실행합니다.


    adb install CoolSms-debug.apk


- AVD에서 실행된 화면 [Send] 버튼을 클릭하면 SMS가 발송됩니다.
android-coolsms.jpg


소스: android.zip

List of Articles
번호 제목 글쓴이
202 오픈TIP VisualStudio 2008 에서 SoHot SMS 컴포넌트를 MFC프로젝트에 적용하기 wiley
201 오픈TIP 오라클 10g 에서 Open Agent 빌드할 때 stdc++라이브러리 버젼에 따른 링크오류 해결하기 file wiley
» 오픈TIP 안드로이드폰에서 쿨에스엠에스 문자 보내기 file wiley
199 오픈TIP [PHP] UTF-8 유니코드 한글 자르기 wiley
198 Classic API 관리자 화면 깨짐 secret [12] 양수양
197 Classic API 댓글알림모듈 file [1] 고투엔젯부산경남지사
196 Classic API 퍼플북 문자전송시 한글이 깨짐현상이요~ file [6] 묵이군
195 Classic API 주소록/문자메세지전송 file [7] 금빛날개새
194 Classic API MessageXE 관련 문의 secret [1] 5호목줄
193 Classic API $sms->printr() secret [1] (주)웹코리아포스트
192 Classic API 설정을 완료했는데 문자가 오질 않습니다 file [1] 경희대학교 총학생회
191 Classic API VS2010 MFC에서 SoHot컴포2.3.1컴포넌트로 문자전송할시오류해결해주세요..ㅠㅠ file [5] 경희대학교생체의공학과
190 Classic API 메뉴 노출 오류 file [2] RUNFS
189 Classic API 문의드립니다. secret [6] 열심맨
188 Classic API sms 발송 모듈 질문입니다. file [2] 알엠스튜디오
187 Classic API 개발자님! secret [5] 졸작연구
186 Classic API ㅜㅜ secret [1] 졸작연구
185 Classic API 안녕하세요! MFC로 전송기능이 잘 안되서! secret [6] Famous
184 Classic API 자꾸 serverlist.cache를 못찾는다고.. file [1] (주)미디어중심
183 Classic API 공유기 상에 올리기 위해서, 질문 있습니다. file [8] 황영호