安卓基础案例 电话+短信

来源:互联网 发布:mysql source用法 编辑:程序博客网 时间:2024/04/28 21:00

前言:
由于复习渣渣面试题,导致本来渣渣的技术更加渣渣,
虽然更新解析博客,算不上原创,起码比不学强,
初学者,不论收到什么打击,应该记得居安思危!
随时应战。。。。。

重回CSDN,复习安卓基础部分

电话:
理论理解: 电话权限+意图+非空判断 三部分重点内容
TextUtils.isEmpty(String str); ————–ava提供的非空判断
inputType=”phone” ———————- xml中 限制输入框内容(同时输入法自动调整)
XML

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"> <TextView      android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="文本控件"/> <!-- 限制输入类型为电话号码 (数值)--> <EditText      android:id="@+id/edit1"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:hint="请输入手机号码"     android:inputType="phone"/> <Button      android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="拨打按钮"     /></LinearLayout>

java代码

package com.example.app1;import org.w3c.dom.Text;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/* * 一个简单的拨打电话程序 * */public class MainActivity extends Activity implements OnClickListener {    public Button button1;                     // 按钮    public EditText edit1;                     // 输入框    public String phone;                      // 全局常量    @Override    protected void onCreate(Bundle savednstanceState) {        super.onCreate(savednstanceState);        setContentView(R.layout.activity_main);        edit1 = (EditText) findViewById(R.id.edit1);                  // 得到 输入框控件        button1 = (Button) findViewById(R.id.button1);                // 得到 点击按钮控件        button1.setOnClickListener(this);                             // 设置 按钮点击事件    }    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.button1:            phone = edit1.getText().toString();                                    // 得到输入框数据                                                                                   // 【非空判断】            if (TextUtils.isEmpty(phone)) {                Toast.makeText(MainActivity.this, "输入内容为空", 1).show();            }            Intent intent = new Intent(Intent.ACTION_CALL);                         // 设置电话意图            intent.setData(Uri.parse("tel:" + phone));                              // 传入电话号码            startActivity(intent);                                                  // 启动意图            break;        }    }}

权限

<!-- 电话权限 -->        <uses-permission android:name="android.permission.CALL_PHONE"/>

短信:

短信可能要考虑一个元素,短信字符限制,
通常:中文70,英文170
所以要对短信内容进行拆分,
拆分功能对部分手机可能出bug,

测试环境: 魅蓝note2 运行安卓5.0,拆分出错,发送超70字竟然也可以,
测试环境: 小米4 运行安卓4.4.2, 分割成功,
究竟系统还是版本原因暂时未知

看代码:

package com.example.app2;import java.util.ArrayList;import android.os.Bundle;import android.app.Activity;import android.telephony.SmsManager;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {  private EditText edit1,edit2;                                                 //电话输入框,内容输入框  private Button button1;                                                       //点击按钮  private String name1,name2;                                                  //电话号码,短信内容    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        edit1=(EditText) findViewById(R.id.edit1);                         //得到 电话输入控件        edit2=(EditText) findViewById(R.id.edit2);                         //得到 短信输入控件        button1=(Button) findViewById(R.id.button1);                        //得到 点击按钮控件        button1.setOnClickListener(this);                                   //设置点按钮击事件    }    public void onClick(View v) {        switch (v.getId()) {        case R.id.button1:            name1=edit1.getText().toString();                            //得到 电话号码文本            name2=edit2.getText().toString();                            //得到 短信内容文本            if(TextUtils.isEmpty(name1)||TextUtils.isEmpty(name2)){                  //【号码和内容的非空判断】                Toast.makeText(MainActivity.this, "输入信息不能为空", 1).show();                 return;            }else{                  SmsManager manager=SmsManager.getDefault();                            //短信管理器                  ArrayList<String> name22= manager.divideMessage(name2);                //短信内容划分为数组                  for(String str : name22){                                          //【高级for循环遍历数组】                      manager.sendTextMessage(name1, null,str , null, null);             //发送短信                      //参数,1.电话号码,2自定义电话号码,3短信内容,4发送状态,5接受状态                       // 由于中国运营商不允许改变发送号码,2.为null,后者4,5以后可以自己研究                  }                  }                 break;        }    }    }

分析: 短信拆分数组,高级for循环遍历数组发送
权限

    <!-- 短信发送权限 -->    <uses-permission android:name="android.permission.SEND_SMS"/>

总结:
电话+短信
很常见,难度不大,注意小细节部分
比如: 类型限制 非空判断 短信长度超范围 等等
养成一个良好的代码习惯
黑马15,
2016 1月31号凌晨1:51

0 0