Android实验二:电话拨号和短信发送

Android实验:电话拨号和短信发送


实验四 Android程序间通信(2课时)
一、实验目的
1、学习android程序之间的通信方法。
二、实验内容
1、编写程序,实现短信发送的功能,要求程序提供用户输入电话号码和短信内容的界面。
2、编写程序,实现电话拨号的功能,要求程序提供用户输入电话号码界面。
三、实验步骤
1、建立一个android工程,修改main.xml文件并编写程序代码,设计一个实现短信发送的功能的程序,要求程序提供用户输入电话号码和短信内容的界面。
2、建立一个android工程,修改main.xml文件及清单文件,并编写程序代码,设计一个电话拨号功能的程序,要求程序提供用户输入电话号码的界面。
四、考核标准:
1、完成全部题目,设计合理,结果正确;评定为A。
2、完成部分题目,设计比较合理,结果正确;根据实际情况评定为B或C。
3、未独立完成实验要求;评定为D。

1.界面布局

activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"    >
    <LinearLayout
        android:layout_width="410dp"
        android:layout_height="205dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="4dp"
        tools:layout_editor_absoluteY="4dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:ignore="MissingConstraints">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="电话号码: " />
            <EditText
                android:id="@+id/ed_main_number"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="请输入号码"
                android:inputType="textPersonName" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="410dp"
            android:layout_height="51dp"
            tools:ignore="MissingConstraints">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="短信内容: " />
            <EditText
                android:id="@+id/ed_main_sms"
                android:layout_width="332dp"
                android:layout_height="wrap_content"
                android:hint="请输入短信内容: " />
        </LinearLayout>
        <LinearLayout
            android:layout_width="411dp"
            android:layout_height="45dp"
            android:orientation="horizontal"
            tools:ignore="MissingConstraints">
           <Button
                android:id="@+id/btn_main_call"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:text="打电话" />
            <Button
                android:id="@+id/btn_main_send"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="发短信" />
        </LinearLayout>
    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

在这里插入图片描述

2.代码实现

MainActivity:

public class MainActivity extends AppCompatActivity {
    //初始化操作视图
    private EditText ed_main_number;
    private EditText ed_main_sms;
    private Button btn_main_call;
    private Button btn_main_send;
    private View.OnClickListener onClickListener = new View.OnClickListener(){
        @Override
        public void onClick(View v){
            if(v==btn_main_call){//点击打电话
//                Toast.makeText(MainActivity.this,"点击打电话",0).show();
                //1.创建一个Intent(隐式)
                String action = Intent.ACTION_DIAL;
                Intent intent = new Intent(action);
                //2.携带数据
                String number=ed_main_number.getText().toString();
                intent.setData(Uri.parse("tel:"+number));//tel固定前缀+电话号码
                //3.startActivity(intent)
                startActivity(intent);
            }else if (v==btn_main_send){//点击发短信
//                Toast.makeText(MainActivity.this,"点击发短信",0).show();
                //1.创建一个Intent
                Intent intent = new Intent(Intent.ACTION_SENDTO);
                //2.携带数据
                String number = ed_main_number.getText().toString();
                String sms = ed_main_sms.getText().toString();
                intent.setData(Uri.parse("smsto:"+number));
                //携带额外数据
                intent.putExtra("sms_body",sms);
                //3.startActivity(intent)
                startActivity(intent);
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化视图对象
        ed_main_number=(EditText)findViewById(R.id.ed_main_number);
        ed_main_sms=(EditText)findViewById(R.id.ed_main_sms);
        btn_main_call=(Button) findViewById(R.id.btn_main_call);
        btn_main_send=(Button) findViewById(R.id.btn_main_send);
        //给视图对象设置点击监听
        btn_main_call.setOnClickListener(onClickListener);
        btn_main_send.setOnClickListener(onClickListener);
    }

}

以上只是实验的简单实现,如果直接通过程序来调起打电话和发短信的功能的话,还得在在这里插入图片描述中添加对应的权限。(不过好像因为版本问题,高版本下此方法已失效)

3.效果

在这里插入图片描述
点击打电话,调起拨号并且将值传入
在这里插入图片描述
点击发短信,效果相同
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq374461948/article/details/106278105