【Android】打电话与发短信的实现

1.首先在AndroidManifest中加入:
   < uses-permission  android:name =  "android.permission.CALL_PHONE"  />
    < uses-permission  android:name = "android.permission.SEND_SMS"  />
获得打电话、发短信权限

2.布局文件如下:
<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"
    tools:context= ".MainActivity" >

    <EditText
        android:id="@+id/Phonenumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="电话号码"
        >
        <requestFocus />
    </EditText >

    <Button
        android:id="@+id/call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拨号" />

    <EditText
        android:id="@+id/sms_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        android:hint="短信内容"
        android:ems="10" />

    <Button
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送" />

</LinearLayout>

3.MainActivity代码:
import java.util.List;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
              setContentView(R.layout. activity_main);
               /*
               * 获取各个控件
               */
              Button call = (Button)findViewById(R.id. call);
              EditText phoneNum = (EditText)findViewById(R.id. Phonenumber);
              Button send =(Button)findViewById(R.id.send);
              EditText smsContent = (EditText)findViewById(R.id. sms_content);
               /*
               * 打电话
               */
               final String number = phoneNum.getText().toString();
              call.setOnClickListener( new OnClickListener() {
                      @Override
                      public void onClick(View arg0) {
                            // TODO Auto-generated method stub
                           Intent intent = new Intent(Intent.ACTION_CALL ,Uri.parse( "tel:"+number));
                           startActivity(intent);
                     } 
            });
               /*
                * 发短信
                */
                final String content = smsContent.getText().toString();
                SmsManager sm = SmsManager. getDefault();
                //当字数超过70时分开多条短信发送
                if(content.length()>70){
                       List<String> contents =sm.divideMessage(content);
                       for(String str : contents){
                            //1.目标地址:电话号码 2.原地址:短信中心服号码3.短信内容4.发送意图5.接收意图
                             sm.sendTextMessage(number, null, str,null , null);
                       }
                } else {
                       sm.sendTextMessage(number, null, content, null, null);
                }
       }

}

4.本文仅提供发短信、打电话的实现方法,关于其深层原理,短信各参数的深层含义就不详尽介绍了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值