Android基础——打打电话
第三天啦,虽然知道虚拟机跟真的手机一样,但是出现通话的界面时,感觉还是好神奇思密达。对于打电话这件事儿来说呢,可以设计一个简易拨号器,也可以两个虚拟机间进行通讯,下面我们开始吧~
No.1 设计一个简易拨号器:
界面设计:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.administrator.call_num.MainActivity" tools:showIn="@layout/activity_main"> <TextView android:textSize="25sp" android:id="@+id/view01" android:text="请输入电话号码:" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/edit01" android:hint="Tel:" android:layout_below="@+id/view01" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Call" android:id="@+id/button01" /> </RelativeLayout>
MainActivity:
public class MainActivity extends AppCompatActivity { private Button mButton; private EditText mEdittext; String phone=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mButton=(Button)findViewById(R.id.button01) ; mEdittext=(EditText)findViewById(R.id.edit01); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { phone=mEdittext.getText().toString(); Intent intent=new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+phone)); startActivity(intent); } });
注:
- Intent的用法:intent是连接两个界面的桥梁,也就是说,在我们点下按钮之后,要从当前界面跳转到拨打用户界面。intent通常需要两个属性,即setAction与setData。setAction用来表明跳转到的界面,这里使用的是系统Action,即拨打号码Action。setData用来表示当前界面需要向跳转的界面传递的参数。
- 关于Uri.parse(),是隐式意图激活,没有指定具体的组件名称,而是通过intent在系统中找到一个最合适的Activity,其中一个方法setDate的参数就是一个uri。"tel:"为规定格式,后面是你要拨打的电话号码,我们的号码是从EditText中get到的。
- 拨打电话需要在Manifest文件中修改权限:
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
运行结果:
N0.2 来自两个虚拟机的通话 <阿西吧 电脑带两个虚拟机好吃力 我的小两千call了小一千>
小两千call小一千的电话号码就是虚拟机的编号。
感谢阅读,喜欢你就点个赞,么么哒~~