음... 음?
소스를 보시면 대충 아실겁니다.
제 어플에 SMS 보내는 기능 추가중 동생이 이 아이디어를 주길레 냅다 만들어 봤슴다.
설명--
java
package hj2.fisher.inaz;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LovemmaActivity extends Activity {
Button btnSendSMS;
EditText txtPhoneNo;
EditText txtMessage;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new AlertDialog.Builder(LovemmaActivity.this)
.setTitle("Welcome!")
.setMessage("이 어플은 단지 '재미'를 위해 만들어진 어플입니다.\n번호 입력창에 관심이 있으신 분의 번호를 입력해주시고, 보내기 버튼을 누르심 되겠슴다. ")
.setPositiveButton("알겠다.", null).show();
btnSendSMS = (Button) findViewById(R.id.send);
txtPhoneNo = (EditText) findViewById(R.id.no);
txtMessage = (EditText) findViewById(R.id.txt);
btnSendSMS.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
String phoneNo = txtPhoneNo.getText().toString();
String message = txtMessage.getText().toString();
if (phoneNo.length()==11 && message.length()>0) // 번호는 11자리가 대세라능
sendSMS(phoneNo, message);
else
Toast.makeText(getBaseContext(),
"정확한 번호를 입력하세요.",
Toast.LENGTH_SHORT).show();
}
});
}
private void sendSMS(String phoneNumber, String message)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
//상황에 따른 토스트 내뱉기
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "아!!! 너가 낚였다!!!!",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "서비스 지역인지 아닌지 확인좀...",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
//---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS가 전송되었습니다.",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS가 전송되지 않았습니다.",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
menu.add(0, 1, 0, "Info");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected (MenuItem item) {
switch (item.getItemId()) {
case 1:
//다이얼로그
new AlertDialog.Builder(LovemmaActivity.this)
.setTitle("정보")
.setMessage("\n단지 재미를 위한 어플입니다.\n\n원하지 않는 결과가 나온다 해서 개발자에게 뭐라 하심 안됩니당...")
.setPositiveButton("콜라", null).show();
break;
}
return false;
}
}
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="추천할 분의 번호를 입력하세요." android:layout_weight="0.31"/>
<EditText
android:id="@+id/no"
android:hint=" 번호를 입력해주세요."
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLength="11"
android:numeric="decimal"
/>
<EditText
android:id="@+id/txt"
android:text="야. 내가 니 좋아한다. 너 나랑 사귀자. 오늘부터 넌 내 애인이다."
android:layout_width="0pt"
android:layout_height="0pt"
android:gravity="top"
/>
<TextView
android:layout_width="wrap_content"
android:text=" 11자리의 휴대폰 번호만 입력 가능합니다."
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:layout_weight="0.36">
</TextView>
~... (이하 생략.)
.. 여기서 눈썰미 좋으신 분들은 찾으셨을텐데요.
main.xml의
<EditText
android:id="@+id/txt"
android:text="야. 내가 니 좋아한다. 너 나랑 사귀자. 오늘부터 넌 내 애인이다."
android:layout_width="0pt"
android:layout_height="0pt"
android:gravity="top"
/>
이 부분을 잘 눈여겨 보시기 바랍니다. (layout_width, height를 보라고 말 안했어요)
layout_width, height가 0pt로 설정되었습니다. 이 경우에는 EditText라는 건 존재 하나 눈에는 안보이게 되죠.
개발자 맘대로 문자 내용을 미리 설정 가능 하단 거죠. 케케
흠.. 간단한 소개 부탁드립니다^^