본문 바로가기

Programming/android

안드로이드 문자 보내기 (2)


안드로이드 문자 어플리케이션을 통해서 보내는 방법은 다음과 같다.

# MIME type을 이용 ("vnd.android-dir/mms-sms")

# 이렇게 하면, 실행됨.

 private void sendSmsByApplication(){
     Intent i = new Intent(Intent.ACTION_VIEW);
     i.putExtra("address", "01025481781");
     i.putExtra("sms_body", "Hello my friends!");
     i.setType("vnd.android-dir/mms-sms");
     startActivity(i);
 }


하지만, 갤럭시 탭에서는 에러가 발생한다. 

실행할 문자 어플리케이션이 없어서 그렇다. 이런 경우, Exception발생.
다음과 같은 Exception. 이런 경우도 대비해야겠다. 

12-28 12:46:17.520: E/AndroidRuntime(1637): FATAL EXCEPTION: main
12-28 12:46:17.520: E/AndroidRuntime(1637): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1510)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.app.Activity.startActivityForResult(Activity.java:3131)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.app.Activity.startActivity(Activity.java:3237)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at s.m.s.MainActivity.sendSmsByApplication(MainActivity.java:40)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at s.m.s.MainActivity.access$0(MainActivity.java:35)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at s.m.s.MainActivity$1.onClick(MainActivity.java:30)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.view.View.performClick(View.java:3122)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.view.View$PerformClick.run(View.java:12020)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.os.Handler.handleCallback(Handler.java:587)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.os.Looper.loop(Looper.java:132)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at android.app.ActivityThread.main(ActivityThread.java:4126)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at java.lang.reflect.Method.invokeNative(Native Method)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at java.lang.reflect.Method.invoke(Method.java:491)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
12-28 12:46:17.520: E/AndroidRuntime(1637):  at dalvik.system.NativeStart.main(Native Method)