Android用Intent实现拨号
自己闲来无事,做了一个Android的拨号程序,此文比较适合初学者
功能简单就是一个EditText输入号码,和一个按钮实现拨打
activity_main.xml中添加
<Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/editText1" android:layout_alignParentRight="true" android:text="Button" /> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/btn1" android:ems="10" > <requestFocus /> </EditText>
然后下面是MainActivity.java文件
package com.example.helloworld; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ForegroundColorSpan; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewDebug.IntToString; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { private Button btn1=null; private EditText edt1=null; private OnClickListener btnListener=new OnClickListener() { @Override public void onClick(View arg0) { //创建一个Intent对象 Intent intent=new Intent(); //为对象设置一个拨号动作 intent.setAction(Intent.ACTION_CALL); //从文本框中获取电话号码 String strPhoneNum=edt1.getText().toString(); //添加就是执行动作要操作的数据 intent.setData(Uri.parse("tel:"+strPhoneNum)); //启动 MainActivity.this.startActivity(intent); /* b.按同样的方法我们可以实现发送短信的功能 //添加动作,为发送短信 intent.setAction(Intent.ACTION_SENDTO); //添加就是执行动作要操作的数据,smsto:phonNumber中的phoneNumber指的是要送对象的电话号码 intent.setData(Uri.parse("smsto:5554")); //设置发送信息 intent.putExtra("sms_body", "这是我发出的信息"); 然后要获得发短信权限在AndroidManifest.xml文件中的</application>下面加入 <uses-permission android:name="android.permission.SEND_SMS" /> */ } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=(Button)findViewById(R.id.btn1); btn1.setOnClickListener(btnListener); edt1=(EditText)findViewById(R.id.editText1); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
上面的工作做完之后并不能启动拨号程序,因为出于系统的安全性考虑我们还要获得拨号程序的权限
我们需要在AndroidManifest.xml文件中加入
<uses-permission android:name="android.permission.CALL_PHONE" />
加入位置为:
之后就可以实现功能了哈!!!