首页 > 系统 > Android > 正文

Android学习笔记(二)之电话拨号器

2019-10-24 20:33:30
字体:
来源:转载
供稿:网友

目前手机市场上android已经具有强大的霸主地位,吸引了很多的追棒者,android学习越来越火热,本文给大家介绍android学习笔记(二)之电话拨号器,感兴趣的朋友一起学习吧

目前Android已经在只能手机市场已经具有强大的霸主地位,也吸引了越来越多的追捧者。Android的学习也越来越火。但是,报名费用确实大多人望而却步

一、新建项目CallPhone

1.1、建立项目

Android学习笔记(二)之电话拨号器

二、设置界面与项目名称

2.1、更改项目名称

res/values下strings.xml中更改app_name电话拔号器

string.xml

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3. <string name="app_name">电话拔号器</string> 
  4. <string name="action_settings">Settings</string> 
  5. <string name="hello_world">Hello world!</string> 
  6. <string name="dail">拔打电话</string> 
  7. <string name="defaul_prop">请输入电话号码</string> 
  8. </resources> 

2.2、设置文件框与按键

 

 
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2. xmlns:tools="http://schemas.android.com/tools" 
  3. android:layout_width="match_parent" 
  4. android:layout_height="match_parent" 
  5. android:paddingBottom="@dimen/activity_vertical_margin" 
  6. android:paddingLeft="@dimen/activity_horizontal_margin" 
  7. android:paddingRight="@dimen/activity_horizontal_margin" 
  8. android:paddingTop="@dimen/activity_vertical_margin" 
  9. tools:context=".MainActivity" > 
  10. <EditText 
  11. android:id="@+id/et_number" 
  12. android:layout_width="match_parent" 
  13. android:layout_height="wrap_content" 
  14. android:inputType="phone" 
  15. android:hint="@string/defaul_prop"
  16. <requestFocus /> 
  17. </EditText> 
  18. <Button 
  19. android:id="@+id/btn_dail" 
  20. android:layout_width="wrap_content" 
  21. android:layout_height="wrap_content" 
  22. android:layout_alignParentRight="true" 
  23. android:layout_below="@+id/et_number" 
  24. android:text="@string/dail" /> 
  25. </RelativeLayout> 

三、写java代码

3.1、MainActivity.java

 

 
  1. package com.pb.dial; 
  2. import android.net.Uri; 
  3. import android.os.Bundle; 
  4. import android.view.View; 
  5. import android.view.View.OnClickListener; 
  6. import android.widget.Button; 
  7. import android.widget.EditText; 
  8. import android.app.Activity; 
  9. import android.content.Intent; 
  10. public class MainActivity extends Activity { 
  11. @Override 
  12. protected void onCreate(Bundle savedInstanceState) { 
  13. super.onCreate(savedInstanceState); 
  14. setContentView(R.layout.activity_main); 
  15. //根据ID找到ID,拔号按键的ID 
  16. Button bt_dail= (Button) findViewById(R.id.btn_dail); 
  17. //为按键设置点击事件 
  18. bt_dail.setOnClickListener(new MyOnClickListener()); 
  19. //单击监听事件 
  20. private class MyOnClickListener implements OnClickListener{ 
  21. /** 
  22. * 单击按键被点击时调用的方法 
  23. */ 
  24. @Override 
  25. public void onClick(View v) { 
  26. //取出输入框中的内容 
  27. //先找到ID 
  28. EditText et_number=(EditText) MainActivity.this.findViewById(R.id.et_number); 
  29. //根据ID出内容 
  30. String phoneNumber=et_number.getText().toString(); 
  31. //意图,想做什么事 
  32. Intent intent=new Intent(); 
  33. //开始拔打电话 
  34. intent.setAction(Intent.ACTION_CALL); 
  35. //设置动作内容 uri:统一资源标识符,url的类型 统一资源定位符 
  36. intent.setData(Uri.parse("tel:"+phoneNumber)); 
  37. //开启新的界面 
  38. startActivity(intent); 

或者

 

 
  1. package com.pb.dial; 
  2. import android.net.Uri; 
  3. import android.os.Bundle; 
  4. import android.text.TextUtils; 
  5. import android.view.View; 
  6. import android.view.View.OnClickListener; 
  7. import android.widget.Button; 
  8. import android.widget.EditText; 
  9. import android.widget.Toast; 
  10. import android.app.Activity; 
  11. import android.content.Intent; 
  12. public class MainActivity extends Activity implements OnClickListener{ 
  13. private Button bt_dail; 
  14. private EditText et_number; 
  15. @Override 
  16. protected void onCreate(Bundle savedInstanceState) { 
  17. super.onCreate(savedInstanceState); 
  18. setContentView(R.layout.activity_main); 
  19. //根据ID找到ID,拔号按键的ID 
  20. bt_dail= (Button) findViewById(R.id.btn_dail); 
  21. //取出输入框中的内容 
  22. //先找到ID 
  23. //根据ID出内容 
  24. et_number=(EditText) MainActivity.this.findViewById(R.id.et_number); 
  25. //为按键设置点击事件 
  26. bt_dail.setOnClickListener(this); 
  27. @Override 
  28. public void onClick(View v) { 
  29. String phoneNumber=et_number.getText().toString().trim(); 
  30. //判断内容是否为空 TextUtils是个工具类 
  31. if(TextUtils.isEmpty(phoneNumber)){ 
  32. Toast.makeText(this"电话号码不能为空", Toast.LENGTH_LONG).show(); 
  33. //如果是内容类请将this改为MainActivity.this 
  34. return
  35. //意图,想做什么事 
  36. Intent intent=new Intent(); 
  37. //开始拔打电话 
  38. intent.setAction(Intent.ACTION_CALL); 
  39. //设置动作内容 uri:统一资源标识符,url的类型 统一资源定位符 
  40. intent.setData(Uri.parse("tel:"+phoneNumber)); 
  41. //开启新的界面 
  42. startActivity(intent); 
  43. //单击监听事件 
  44. /* private class MyOnClickListener implements OnClickListener{ 
  45. *//** 
  46. * 单击按键被点击时调用的方法 
  47. *//* 
  48. @Override 
  49. public void onClick(View v) { 
  50. //取出输入框中的内容 
  51. //先找到ID 
  52. EditText et_number=(EditText) MainActivity.this.findViewById(R.id.et_number); 
  53. //根据ID出内容 
  54. String phoneNumber=et_number.getText().toString(); 
  55. //意图,想做什么事 
  56. Intent intent=new Intent(); 
  57. //开始拔打电话 
  58. intent.setAction(Intent.ACTION_CALL); 
  59. //设置动作内容 uri:统一资源标识符,url的类型 统一资源定位符 
  60. intent.setData(Uri.parse("tel:"+phoneNumber)); 
  61. //开启新的界面 
  62. startActivity(intent); 
  63. } 
  64. }*/ 

3.2、添加权限

 

 
  1. <!--添加权限 --> 
  2. <uses-permission android:name="android.permission.CALL_PHONE"/> 

3.3、运行

Android学习笔记(二)之电话拨号器

下面给大家分享一段代码 ————android电话拔号器和短信发送器

android电话拔号器

因为应用要使用手机的电话服务,所以要在清单文件AndroidManifest.xml中添加电话服务权限:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3. package="cn.itcast.action" 
  4. android:versionCode="1" 
  5. android:versionName="1.0"
  6. 略.... 
  7. <uses-sdk android:minSdkVersion=“6" /> 
  8. <uses-permission android:name="android.permission.CALL_PHONE"/> 
  9. </manifest> 

界面布局:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:orientation="vertical" 
  4. android:layout_width="fill_parent" 
  5. android:layout_height="fill_parent" > 
  6. <TextView  
  7. android:layout_width="fill_parent" android:layout_height="wrap_content" 
  8. android:text="@string/inputmobile"/> 
  9. <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" 
  10. android:id="@+id/mobile"/> 
  11. <Button android:layout_width="wrap_content" android:layout_height="wrap_content" 
  12. android:text="@string/button" 
  13. android:id="@+id/button"/> 
  14. </LinearLayout> 

LinearLayout (线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)

Activity:

 

 
  1. public class DialerAction extends Activity { 
  2. @Override 
  3. public void onCreate(Bundle savedInstanceState) { 
  4. super.onCreate(savedInstanceState); 
  5. setContentView(R.layout.main); 
  6. Button button = (Button)findViewById(R.id.button); 
  7. button.setOnClickListener(new View.OnClickListener(){ 
  8. public void onClick(View v) { 
  9. EditText editText = (EditText)findViewById(R.id.mobile); 
  10. Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ editText.getText())); 
  11. DialerAction.this.startActivity(intent); 
  12. }); 

短信发送器

因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限:

 

 
  1. <uses-permission android:name="android.permission.SEND_SMS"/> 

界面布局:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:orientation="vertical“ android:layout_width="fill_parent“ android:layout_height="fill_parent" > 
  4. <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
  5. android:text="@string/inputmobile"/> 
  6. <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" 
  7. android:id="@+id/mobile"/> 
  8. <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
  9. android:text="@string/content"/> 
  10. <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" 
  11. android:minLines="3" 
  12. android:id="@+id/content"/> 
  13. <Button android:layout_width="wrap_content" android:layout_height="wrap_content" 
  14. android:text="@string/button" 
  15. android:id="@+id/button"/> 
  16. </LinearLayout> 

Activity主要代码:

 

 
  1. String mobile = mobileView.getText().toString(); 
  2. String content = contentView.getText().toString(); 
  3. SmsManager smsManager = SmsManager.getDefault(); 
  4. PendingIntent sentIntent = PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0); 
  5. if(content.length()>70){//如果字数超过70,需拆分成多条短信发送 
  6. List<String> msgs = smsManager.divideMessage(content); 
  7. for(String msg : msgs){ 
  8. smsManager.sendTextMessage(mobile, null, msg, sentIntent, null); 
  9. //最后二个参数为短信已发送的广播意图,最后一个参数为短信对方已收到短信的广播意图 
  10. }else{  
  11. smsManager.sendTextMessage(mobile, null, content, sentIntent, null); 
  12. Toast.makeText(SMSSender.this"短信发送完成", Toast.LENGTH_LONG).show(); 


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表