개발자 포럼
필독사항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();
}
});
}
}
[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.zip