Android实验:电话拨号和短信发送
- 1.界面布局
- 2.代码实现
- 3.效果
实验四 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.效果
点击打电话,调起拨号并且将值传入
点击发短信,效果相同