电话拨号器
电话拨号器 package
cn.zengfansheng.phone; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText etDail; /** * activity创建的时候 调用的方法 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //1、设置activity显示的内容:一个xml文件 setContentView(R.layout.phone_ui); //2、通过id寻找控件 etDail = (EditText) MainActivity.this.findViewById(R.id.et_dail); //寻找edittext 界面初始化的时候寻找控件 ,避免多次的查询 Button btDail = (Button) this.findViewById(R.id.bt_dail); //3、给按钮注册一个点击事件的监听器 btDail.setOnClickListener(new MyButtonListener()); } private class MyButtonListener implements OnClickListener{ /** * 当按钮被点击的时候调用 */ @Override public void onClick(View v) { String phoneNumber = etDail.getText().toString(); Intent intent = new Intent(); //设置意图动作 intent.setAction(Intent.ACTION_CALL); //设置意图数据 //intent.setData(Uri.parse(phoneNumber));//问题1: intent.setData(Uri.parse("tel:"+phoneNumber)); //开启意图 MainActivity.this.startActivity(intent); } } } |
问题1://intent.setData(Uri.parse(phoneNumber)); 10-10 15:34:54.144: E/AndroidRuntime(10307): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=11 }
解决:intent.setData(Uri.parse("tel:"+phoneNumber)); |
问题2:打电话权限问题
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xx cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{41226d68 621:cn.zengfansheng.phone/u0a42} (pid=621, uid=10042) requires android.permission.CALL_PHONE 解决:增加用户权限 <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.CALL_PHONE"/> |