當前位置:名人名言大全網 - 短信平臺 - 安卓手持終端不能打電話發短信嗎

安卓手持終端不能打電話發短信嗎

可以的!1 案例目的

本案例通過壹個簡單通訊工具來鞏固android的activity、LinearLayout布局、基本控件Button、打電話發短信以及應用程序交互通信Intent的使用。本案例重點講解android中事件處理原理以及該原理在項目中的應用。

2 案例介紹

零距通這個通訊工具可以實現發短信打電話的功能,無論在天涯海角,只需使用零距通,讓妳跟妳的朋友,家人從此變成零距離無障礙溝通,零距通,讓妳的生活從此零距離。

3 案例分析

本項目采用android2.3.3開發。由於該項目主要實現打電話發短信的功能,用Intent激活程序---電話與短信本篇中使用的 Intent 打電話程序中,Intent 的行為是 ACTION_DIAL,同時在 Intent 中傳遞被呼叫人的電話號碼。撥打電話的關鍵有兩個方面,首先,要在 AndroidManifest 中添加 uses-permission,並聲明android:name="android.permission.CALL_PHONE" 權限。由於打電話是屬於手機的底層服務,與用戶隱私及通話費用等話題息息相關,困此,程序必須取得權限。其次,通過自定義 Intent 對象,帶入“ACTION_CALL” 這個關鍵(Action),以及通過Uri.parse()的方法將用戶輸入電話號碼(Data)帶入,最後以 startActivity()方法,即可完成。要實現發短信的功能,必須要用到android系統中發短信的權限,即在AndoridManifest.xml中添加如下內容

<uses-permissionandroid:name=”android.permission.SEND_SMS”/>

4 案例設計

單擊“發短信”,“打電話”按鈕時的事件處理流程如下:

(1)創建“發短信”,“打電話”按鈕事件源。

(2)事件源向點擊事件監聽器類註冊。

(3)當點擊事件源“發短信”,“打電話”按鈕時觸發事件並調用事件監聽器類中的onClick(View)方法處理業務邏輯。

5 業務邏輯設計

if(myeditText.getText().length()>0{

Intent myIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+myeditText.getText().toString()));

Phone.this.startActivity(myIntent);

}

String mobile=myEditText.getText().toString();

String content=EditText2.getText().toString();

SmsManager sms=SmsManager.getDefault();

PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this,0, new Intent(), 0);

先來效果圖:

? ?

6 案例實現:

案例實現的部分重要代碼如下:

1.首頁界面

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/bg"

android:orientation="vertical" >

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_alignParentLeft="true"

android:layout_marginBottom="165dp"

android:layout_marginLeft="23dp"

android:background="@drawable/button"

android:text="打電話" />

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/button1"

android:layout_alignBottom="@+id/button1"

android:layout_alignParentRight="true"

android:background="@drawable/button"

android:text="發短信"

2.主界面activity

public class SmsAndPhoneActivity extends Activity {

/** Called when the activity is first created. */

Button button1,button2;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//根據ID查找相應控件

button1=(Button) findViewById(R.id.button1);

button2=(Button) findViewById(R.id.button2);

//按鈕監聽事件

button1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//跳轉到打電話頁面

Intent intent = new Intent(SmsAndPhoneActivity.this,

Phone.class);

startActivity(intent);

}

});

button2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//跳轉到發短信頁面

Intent intent1=new Intent(SmsAndPhoneActivity.this,

SmsActivity.class);

startActivity(intent1);

}

});

}

}

3.發短信界面activity

public class SmsActivity extends Activity{

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.sms);

Button butsend=(Button) findViewById(R.id.butsend);

final EditText myEditText=(EditText)findViewById(R.id.mobile);

final EditText EditText2=(EditText)findViewById(R.id.content);

butsend.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String mobile=myEditText.getText().toString();

String content=EditText2.getText().toString();

SmsManager sms=SmsManager.getDefault();

PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this,

0, new Intent(), 0);

try {

if(content.length()>70)

{

List<String> msgs=sms.divideMessage(content);

for(String msg:msgs)

{

sms.sendTextMessage(mobile, null, msg, sentintent, null);

}

}

else

{

sms.sendTextMessage(mobile, null, content, sentintent, null);

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

Toast.makeText(SmsActivity.this, "短信發送成功", 1000).show();

}

});

4.打電話界面Activity

public class Phone extends Activity{

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.phone);

final EditText myeditText=(EditText) findViewById(R.id.myedittext);

Button butphone=(Button) findViewById(R.id.butphone);

butphone.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(myeditText.getText().length()>0)

{

Intent myIntent=new Intent(Intent.ACTION_CALL,Uri.parse

("tel:"+myeditText.getText().toString()));

Phone.this.startActivity(myIntent);

}

}

});

}

}

源碼下載:SmsAndPhone.zip