package mars.com;import java.util.List;import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class TelephoneCallActivity extends Activity {private Button call;private EditText input;private EditText message;private Button sendMsg;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);call = (Button) findViewById(R.id.call);input = (EditText) findViewById(R.id.input);message = (EditText) findViewById(R.id.message);sendMsg = (Button) findViewById(R.id.sendmsg);sendMsg.setOnClickListener(new OnClickListener() {public void onClick(View v) {String str = message.getText().toString();if (str == null) {Toast.makeText(TelephoneCallActivity.this, "沒有輸入電話號碼",Toast.LENGTH_SHORT).show();return;}SmsManager sm = SmsManager.getDefault();List<String> texts = sm.divideMessage(str);for (String string : texts) {sm.sendTextMessage(input.getText().toString(), null,string, null, null);}// ******另外一種傳送簡訊/*String strNo = input.getText().toString();String strContent = message.getText().toString();SmsManager smsManager = SmsManager.getDefault();PendingIntent sentIntent = PendingIntent.getBroadcast(TelephoneCallActivity.this, 0, new Intent(), 0);// 如果字數超過30,需拆分成多條簡訊發送if (strContent.length() > 30) {List<String> msgs = smsManager.divideMessage(strContent);for (String msg : msgs) {smsManager.sendTextMessage(strNo, null, msg,sentIntent, null);}} else {smsManager.sendTextMessage(strNo, null, strContent,sentIntent, null);}Toast.makeText(TelephoneCallActivity.this, "簡訊發送完成",Toast.LENGTH_LONG).show();*/}});call.setOnClickListener(new OnClickListener() {public void onClick(View v) {String str = input.getText().toString();if (str == null) {Toast.makeText(TelephoneCallActivity.this, "沒有輸入電話",Toast.LENGTH_SHORT).show();return;}Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ str));startActivity(intent);}});}}
xml檔案如下
<?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/a1" /> <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:digits="1234567890" android:inputType="text" android:numeric="integer" android:phoneNumber="true" /> <Button android:id="@+id/call" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/call" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/a2" /> <EditText android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="text" /> <Button android:id="@+id/sendmsg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/msg" /></LinearLayout>
別忘了添加許可權呀,
manifest檔案中的內容如下
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mars.com" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TelephoneCallActivity" 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>