Android學習筆記(四) 之模擬發短信

首先創建基於Android2.2 模擬器的Android工程

先完善string.xml 文件

[html]
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
 
    <string name="hello">Hello World, SmsActivity!</string> 
    <string name="app_name">短信發送器</string> 
    <string name="mobile">請輸入手機號</string> 
    <string name="content">請輸入短信內容</string> 
    <string name="button">發送短信</string> 
    <string name="success">發送成功</string> 
</resources> 
然後完善main.xml 界面UI文件
[html] 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello" /> 
    <TextView 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/mobile" 
        /> 
    <EditText 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/mobile" 
         /> 
    <TextView 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/content" 
        /> 
    <EditText 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/content" 
        android:minLines="3" 
         /> 
    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/button" 
        android:text="@string/button" /> 
</LinearLayout> 
Java類
[java]
package com.android.sms; 
 
import java.util.List; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
 
public class SmsActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        Button btn=(Button)this.findViewById(R.id.button); 
        btn.setOnClickListener(new View.OnClickListener() { 
             
            @Override 
            public void onClick(View v) { 
                 
                EditText mobileText=(EditText)findViewById(R.id.mobile); 
                 
                EditText contentText=(EditText)findViewById(R.id.content); 
                /**
                 * 獲取手機號
                 */ 
                String mobile=mobileText.getText().toString(); 
                /**
                 * 獲取短信內容
                 */ 
                String content=contentText.getText().toString(); 
                 
                /**
                 * 獲取系統的短信管理器
                 */ 
                SmsManager sm=SmsManager.getDefault(); 
                /**
                 * 如果短信超過70個字符,將短信拆分進行發送。
                 */ 
                List<String> texts=sm.pideMessage(content); 
                for(String text:texts){ 
                    sm.sendTextMessage(mobile, null, text, null, null); 
                } 
                 
                /**
                 * 添加一個發送結果提示
                 */ 
                Toast.makeText(SmsActivity.this, R.string.success, Toast.LENGTH_LONG).show(); 
            } 
        }); 
         
    } 

在文件AndroidManifest.xml 添加發送短信的權限
[html]
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.android.sms" 
    android:versionCode="1" 
    android:versionName="1.0" > 
 
    <uses-sdk android:minSdkVersion="8" /> 
     
    <uses-permission android:name="android.permission.SEND_SMS"/> 
    <application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" > 
        <activity 
            android:name=".SmsActivity" 
            android:label="@string/app_name" > 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
 
</manifest> 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *