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);
                }
            }
        });
    } 
}  

当你看到这里,恭喜你!你已经会电话拨号器和短信发送器两个功能了。哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值