Android兩個小Demo之電話撥號器和短信發送器

兩個簡單的小案列

<1>電話撥號器

實現一個電話撥號器,我們分爲簡單的三步走:

1.在layout中寫好佈局
2.在MainActivity中寫出對應的事件
3.在Manifest中配置好權限

第一步:

我們的電話撥號器很簡單,一個TextView,一個EditText,一個Button就搞定了,用線性佈局就可以了。代碼實現:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="號碼" />
<EditText 
    android:id="@+id/edit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />
<Button 
    android:id="@+id/bt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="撥號"/>

</LinearLayout>  
第二步:

當我們寫好佈局之後,就需要寫對應的java代碼了。
我們需要點擊Button之後,實現打電話的功能。所以我們要做的又兩件事:1.給Button添加點擊事件;2.要獲取用戶輸入的號碼。代碼實現:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //得到按鈕
        Button bt=(Button) findViewById(R.id.bt);
        //採用匿名內部類的方式給按鈕添加點擊事件
        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //得到Edit控件
                EditText et=(EditText)findViewById(R.id.edit);
                //得到號碼
                String num =et.getText().toString().trim();
                if(TextUtils.isEmpty(num)){
                    //如果號碼爲空                        
                    Toast.makeText(MainActivity.this, "號碼不能爲空", 0).show();
                }else{
                    Intent intent =new Intent();
                    //設置打電話的動作
                    intent.setAction(Intent.ACTION_CALL);
                    //將電話號碼添加在intent中
                    intent.setData(Uri.parse("tel"+num));
                    //開啓活動
                    startActivity(intent);
                }
            }
        });
    }
}  
第三步

前面的都完成後,當你點擊Run As的時候,你會發現程序還是跑不起來。原因是:你沒有設置打電話的權限。接下來我們就需要在Manifest.xml中設置權限,一句話解決。

<uses-permission android:name="android.permission.CALL_PHONE" />

恭喜你,你已經實現了一個電話撥號器的功能。

<2>短信發送器

實現一個短信發送器的步驟與上面完全相同,佈局裏面就是2個TextView,2個EditText,一個Button.完成佈局後緊接着要完成java代碼,最後添加發送短信的權限。第一步和第三步就直接上代碼了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="vertical"
>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TelephoneNumber" />
<EditText 
    android:id="@+id/edit_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Fill Number"
    />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Content" />
<EditText 
    android:id="@+id/edit_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:lines="10"
    android:hint="Please write here"
    android:gravity="top"
    />
<Button 
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Send"
    />


</LinearLayout>

添加發短信的權限

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

下面主要說一下發送短信的功能:

  1. 獲取號碼和短信的內容
  2. 爲按鈕添加點擊事件
  3. 獲取短信管理對象
  4. 拆分短信
  5. 多條一起發送

代碼如下:

public class MainActivity extends Activity {
    private EditText ed_num;
    private EditText ed_msg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ed_num=(EditText) findViewById(R.id.edit_1);
        ed_msg=(EditText) findViewById(R.id.edit_2);
        Button bt =(Button)findViewById(R.id.button);
        //爲按鈕添加點擊事件
        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //獲取號碼
                String num=ed_num.getText().toString().trim();
                //獲取短信內容
                String msg=ed_msg.getText().toString();
                if(TextUtils.isEmpty(num) || TextUtils.isEmpty(msg)){
                    Toast.makeText(MainActivity.this, "號碼或短信爲空", 0).show();
                }else{
                    //獲取短信管理對象
                    SmsManager manager = SmsManager.getDefault();
                    //拆分短信
                    ArrayList<String> list = manager.divideMessage(msg);
                    //直接發送多條短信
                    manager.sendMultipartTextMessage(num, null, list, null, null);
                }
            }
        });
    } 
}  

當你看到這裏,恭喜你!你已經會電話撥號器和短信發送器兩個功能了。哈哈

發佈了32 篇原創文章 · 獲贊 19 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章